AngularJS – Tab 介紹篇

為了方便文章閱讀,本篇將Tab翻譯成頁籤

這個案例的複雜度會比較前面高一些,因為它不僅僅是使用我們一直提到的AngularJS,為了要製作頁面上面的一些互動效果,還加入了Bootstrape這個通常被用來當RWD的框架,不過也僅僅是套用了幾個類別,所以大家也不用太擔心,接下來我們先看一下這個案例最後希望要達成的效果頁面

在看過了目標頁面後,我們先來了解一下需要怎麼樣架構我們的HTML,首先是CSS和Javascript的引入,分別是AngularJS、jQuery、Bootstrap CSS以及Javascript:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script>
<script src="https://code.jquery.com/jquery.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>

在HTML文件中,必須有項目清單標籤ul、li,而在ul標籤中需套用nav nav-pills這兩個css類別,這兩個類別是由Bootstrape的css所提供的,li標籤是包覆著超連結的a標籤,下圖案例是希望可以產生三個頁籤。

AngularJS Part5 Slide1
AngularJS Part5 Slide1

在a標籤中加入ng-click=”tab = 1″、ng-click=”tab = 2″、ng-click=”tab = 3″去設定當使用者按下連結後tab變數會隨著變化,另外為了方便觀察是否成功,在頁面上利用表達式將tab變數顯示出來。

AngularJS Part5 Slide1
AngularJS Part5 Slide2

若一切順利,在我們按下不同的頁籤連結時,畫面上應該會有數字上面的變化。

AngularJS Part5 Slide3
AngularJS Part5 Slide3
AngularJS Part5 Slide4
AngularJS Part5 Slide4

接下來開始製作點選頁籤後的內容頁面,同樣的內容頁面也應該有三個才對,在HTML中產生三個div,其中套用Bootstrape所提供的CSS panel類別,div的內容部分可依照需求置入。

AngularJS Part5 Slide5
AngularJS Part5 Slide5

在div中利用ng-show去判斷tab變數的值來切換顯示。

AngularJS Part5 Slide6
AngularJS Part5 Slide6

完成後,在我們點選不同的連結時,內容的部分也應該會隨著變動。

AngularJS Part5 Slide7
AngularJS Part5 Slide7

接下來我們在section標籤中設定ng-init=”tab=1″的屬性來決定tab變數的初始值。

AngularJS Part5 Slide8
AngularJS Part5 Slide8

接下來在li內新增ng-class的屬性,依tab變數的值來切換active的CSS屬性(該屬性由Bootstrape提供樣式),其中三個連續的等號是判斷該變數與值完全相同的意思。

AngularJS Part5 Slide9
AngularJS Part5 Slide9

這個動作的目的是希望當網友點選之後,可以如下圖所示,清楚的標示目前頁面上所顯示的是第幾個項目。

AngularJS Part5 Slide10
AngularJS Part5 Slide10

到目前為止,大概就完成了我們希望呈現的頁籤效果,大家可以透過JS Bin來測試看看到目前為止的程式碼。

<!DOCTYPE html>
<html ng-app>
<head>
<meta name="description" content="AngularJS Tabs Example 1">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script>
<script src="//code.jquery.com/jquery.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
  <meta charset="utf-8">
  <title>AngularJS Tabs Example 1</title>
</head>
<body>
  <section ng-init="tab=1">
    
    <ul class="nav nav-pills">
      <li ng-class="{ active: tab===1 }">
        <a href="" ng-click="tab=1">滑鼠墊</a>
      </li>
      <li ng-class="{ active: tab===2 }">
        <a href="" ng-click="tab=2">馬克杯</a>
      </li>
      <li ng-class="{ active: tab===3 }">
        <a href="" ng-click="tab=3">杯墊</a>
      </li>
    </ul>
    
    <div class="panel" ng-show="tab===1">
      <h4>馬老師雲端研究室 滑鼠墊</h4>
      <p>產品介紹...</p>
    </div>
    <div class="panel" ng-show="tab===2">
      <h4>馬老師雲端研究室 馬克杯</h4>
      <p>產品介紹...</p>
    </div>
    <div class="panel" ng-show="tab===3">
      <h4>馬老師雲端研究室 杯墊</h4>
      <p>產品介紹...</p>
    </div>
  
  </section>
</body>
</html>

在看完了上面的案例之後,我們可以觀察到程式邏輯判斷的部分都是直接撰寫在HTML頁面上,那如果我們要把邏輯判斷的部分從HTML拆開寫到Javascript檔又應該要如何處理呢?首先,不用說的當然是必須要有應用程式的建立以及控制器囉!下圖中我們開始新增控制器,並且在section標籤中,輸入ng-controller=”panelController as panel”的屬性,相信在看了前幾篇教學的同學們對於這樣的項目是再熟悉不過了!接下來在控制器中,決定tab變數的初始值,就可以把原來的ng-init屬性刪除了。

AngularJS Part5 Slide11
AngularJS Part5 Slide11

在ng-click後去執行控制器中的selectTab函數,並且針對該函數帶入不同的值,利用帶入的值來改變tab變數值。

AngularJS Part5 Slide12
AngularJS Part5 Slide12

在ng-click後去執行控制器中的isSelected函數,也帶出不同的值給函數,讓函數可以回傳tab===1或2、3這樣的內容給ng-show使用。

AngularJS Part5 Slide13
AngularJS Part5 Slide13

這樣一來我們邏輯判斷的部分就會和網頁內容有所區隔,大家也可以透過JS Bin來測試這樣的程式結構。

<!DOCTYPE html>
<html ng-app="store">
<head>
<meta name="description" content="AngularJS Tabs Example 2">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.min.js"></script>
<script src="//code.jquery.com/jquery.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
  <meta charset="utf-8">
  <title>AngularJS Tabs Example 2</title>
</head>
<body>
  <section ng-controller="PanelController as panel">
    <ul class="nav nav-pills">
      <li ng-class="{ active: panel.isSelected(1) }">
        <a href="" ng-click="panel.selectTab(1)">滑鼠墊</a>
      </li>
      <li ng-class="{ active: panel.isSelected(2) }">
        <a href="" ng-click="panel.selectTab(2)">馬克杯</a>
      </li>
      <li ng-class="{ active: panel.isSelected(3) }">
        <a href="" ng-click="panel.selectTab(3)">杯墊</a>
      </li>
    </ul>
    <div class="panel" ng-show="panel.isSelected(1)">
      <h4>馬老師雲端研究室 滑鼠墊</h4>
      <p>產品介紹...</p>
    </div>
    <div class="panel" ng-show="panel.isSelected(2)">
      <h4>馬老師雲端研究室 馬克杯</h4>
      <p>產品介紹...</p>
    </div>
    <div class="panel" ng-show="panel.isSelected(3)">
      <h4>馬老師雲端研究室 杯墊</h4>
      <p>產品介紹...</p>
    </div>
  </section>
</body>
</html>
(function(){
  var app = angular.module('store', []);
  
  app.controller('PanelController', function(){
    this.tab = 1;
    
    this.selectTab = function(setTab){
      this.tab = setTab;
    };

    this.isSelected = function(checkTab){
      return this.tab === checkTab;
    };
  });
  
})();

You may also like...

50,783 Responses

  1. My spouse and i got so joyous Edward could carry out his investigation through the entire ideas he came across while using the weblog. It is now and again perplexing to just always be giving for free techniques which usually others might have been selling. We really remember we’ve got you to appreciate for this. The main explanations you’ve made, the easy website navigation, the relationships your site aid to create – it’s got mostly wonderful, and it is aiding our son in addition to the family feel that this issue is exciting, which is certainly very fundamental. Thank you for all the pieces!

  2. I wouldn’t normally be so intrigued by content on this topic but the way you wrote this really grabbed my attention. It is very well thought out and interesting informative content. Thank you for sharing!

  3. Erec Prime表示:

    I’m often to blogging and i really recognize your content. The article has actually peaks my interest. I am going to bookmark your site and preserve checking for brand new information.

  4. pornhub表示:

    A. 카카오택시 앱을 실행한 후 ‘예약’ 탭을 누르시면 됩니다. 이후 출발 위치, 도착 위치, 탑승 시간 등을 입력하고 ‘예약하기’를 누르시면 예약이 완료됩니다. 다음 사이트에서 섹스 비디오를 시청하세요 강남출장섹스마사지

  5. A lot of thanks for all of your work on this site. Betty really loves setting aside time for internet research and it is simple to grasp why. Most people learn all concerning the dynamic manner you convey rewarding tips on the website and as well encourage participation from visitors about this point plus my princess is undoubtedly being taught a great deal. Enjoy the rest of the new year. You have been conducting a fabulous job.

  6. An impressive share, I given this onto a colleague who had previously been doing little analysis for this. And he in reality bought me breakfast simply because I came across it for him.. smile. So well then, i’ll reword that: Thnx with the treat! But yeah Thnkx for spending plenty of time to talk about this, Personally i think strongly regarding it and adore reading much more about this topic. When possible, as you become expertise, do you mind updating your site with an increase of details? It’s extremely useful for me. Big thumb up just for this blog post!

  7. Cheers for this excellent. I was wondering if you were thining of writing similar posts to this one. .Keep up the great articles!

  8. This is actually attractive, You’re particularly expert article author. I have signed up with your feed and additionally expect enjoying all of your really good write-ups. At the same time, I’ve shared the blog throughout our social networking sites.

  9. I really happy to read this post,I was just imagine about it and you provided me the correct information .

  10. I discovered your blog post web site on yahoo and check many of your early posts. Preserve up the good operate. I just additional the Feed to my MSN News Reader. Seeking toward reading far more on your part later on!…

  11. Thank you, I have just been looking for information about this subject for ages and yours is the best I’ve discovered so far. But, what about the bottom line? Are you sure about the source?

  12. Your grasp of this topic is amazing. It really touched base to me and I am glad I found this material. Thank you very much.

  13. I love what you guys are up too. Such clever work and exposure! Keep up the very good works guys I’ve incorporated you guys to my own blogroll.

  14. Wohh precisely what I was searching for, thanks for putting up.

  15. It looks like which i are concerned about my own personal information, not necessarily a different inividual in my small analysis.

  16. I enjoy reading article. Hope i can find more articles like this one. Thanks for posting.

  17. detect a leak表示:

    Hi! I could have sworn I’ve been to this blog before but after checking through some of the post I realized it’s new to me. Anyhow, I’m definitely glad I found it and I’ll be bookmarking and checking back often!

  18. bad credits can happen at any point in your life so be prepared to always get some extra income.

  19. if you really need to become expert in driving, your really need to enroll in a driving school,.

  20. Tkgekj表示:

    finax cheap – buy cardura generic alfuzosin 10mg drug

  21. After looking at a number of the articles on your site, I really appreciate your way of writing a blog. I added it to my bookmark website list and will be checking back soon. Please visit my web site as well and tell me what you think.

  22. Wylgbk表示:

    speman brand – cheap himplasia fincar online

  23. Отличный сайт! Всем рекомендую!печать этикеток

  24. JamesVOF表示:

    Воины-пайщики оказались без защиты в тылу
    Пайщики «Бест Вей» — участники СВО готовы защищать свой кооператив
    Кооператив Бествей
    Многие пайщики кооператива «Бест Вей» и те, в чьих интересах приобретаются квартиры в кооперативе, — участники СВО. И они сами, и их родственники возмущены событиями, происходящими вокруг кооператива. Ведь защищая интересы страны на фронте, в тылу они не защищены от того, что не могут приобрести недвижимость из-за того, что счета кооператива с почти 4 млрд рублей уже более двух лет находятся под арестом — притом, что сумма ущерба по уголовному делу, рассматриваемому Приморским районным судом Санкт-Петербурга, согласно обвинительному заключению, составляет 282 млн рублей.

    «Надеемся, новое руководство Министерства обороны поможет урегулировать ситуацию»

    Наталья Пригаро, мать пайщика кооператива — участника СВО из Нефтеюганска Даниила Пригаро:

    — Сын расплатился за однокомнатную квартиру, приобретенную с помощью кооператива, еще два года назад, подал пакет документов на оформление квартиры в собственность в Росреестр в начале сентября 2022 года — и все это время не может зарегистрировать собственность на нее из-за того, что в Росреестре она значится как арестованная. В конце сентября 2022 года он был мобилизован. Сын брал кредит, чтобы расплатиться за квартиру с кооперативом. Планировал продать эту квартиру и взять квартиру побольше в ипотеку. Однако неоднократно накладывался арест на недвижимость кооператива, несмотря на то что сейчас ареста нет — последний арест, накладывавшийся осенью 2023 года, 19 февраля истек, ходатайства о новом аресте дважды отклонены судом, по Росреестру арест с квартиры до сих пор не снят. В результате кредит приходится платить, квартира в собственность до сих пор не оформлена.

    У сына нет никакой физической и финансовой возможности выяснять отношения с Росреестром — в административном или судебном порядке, он приезжает в отпуска на неделю-полторы, ему не до сутяжничества. Я нахожусь в Анапе, приобрела квартиру с помощью кооператива — сын не имеет возможности сделать на меня генеральную доверенность, а я не могу из Анапы приехать в Нефтеюганск и решать вопросы в Росреестре — кроме поезда, сейчас, сами понимаете, ничего не ходит (конец цитаты).

    «На безобразие, которое происходит с кооперативом, мы пишем жалобы во все инстанции, — говорит она. — Надеемся, новое руководство Министерства обороны поможет урегулировать ситуацию».

    «Надежда, что все разрешится, остается — не может же все быть коррумпировано»

    Елена Бойко — пайщик кооператива из Новосибирска и мать солдата, воющего в СВО, для которого она собиралась приобрести одну из двух квартир в кооперативе. «Я стала пайщиком кооператива в 2021 году. В январе 2021 года подала заявление на покупку двух квартир с помощью кооператива по накопительной программе. У меня двое детей — сын и дочь, им нужно жилье. В 2020 году взяли в ипотеку загородный дом — причем оформили на сына как единственного, кому ее могли одобрить, а в 2021 году он ушел в армию как призывник, а потом подписал контракт. Его относительно недавно отправили „за ленточку“. Думали, что поживем в ипотечном доме, и тут как раз подойдет очередь приобретать квартиры с помощью кооператива. Мы останемся жить в частном доме, а дети въедут в кооперативные квартиры».

    «Ипотека — это разорительно, — подчеркивает Елена, — мы взяли 2,5 млн, а за 30 лет отдадим 6 млн. Когда появился кооператив, для нас это была возможность предоставить каждому из детей жилье: за 10 лет или раньше они расплатятся с кооперативом, причем с минимальной по сравнению ипотекой переплатой, и у них будет собственное жилье. Из-за репрессий в отношении кооператива мы можем быть этой возможности лишены».

    «Я всем сердцем переживаю за ситуацию с кооперативом, заявление о выходе из кооператива пока не пишу — надеюсь, что его деятельность „разморозится“, — говорит Елена. — Обращаемся во все инстанции, в прокуратуру — приходят отписки. Смысл происходящего я понимаю хорошо — когда-то занималась кредитным потребительским кооперативом: нас тогда закрыл Центральный банк. Нашел формальный повод. Но настоящая причина была в том, что мы мешали банкам обирать клиентов. Но надежда на то, что все разрешится, остается — не может же быть все коррумпировано».

    «Больше всего в нашей ситуации возмущает то, что наши воины стоят на стороне государства на фронте, а здесь, в тылу, их интересы нарушаются государственными структурами. Такого быть не должно!»

    «Для многих кооператив — единственная возможность приобрести квартиру»

    Лариса Зискинд — пайщица «Бест Вей», переехавшая с помощью кооператива с семьей — с дочерью, зятем и маленьким внуком ­- с Дальнего Востока в Белгородскую область. Ее зять, живущий в кооперативной квартире, находится на фронте СВО. «С помощью кооператива я приобрела квартиру в двухэтажном доме в селе Пушкарное Белгородской области — мы с дочерью переехали сюда. Мы уже два года расплачиваемся за него с кооперативом. Не до конца сделали ремонт, кухни фактически нет: моем посуду в ванной. Финансовых средств не хватает, так как зять уже год на СВО, пока ни разу не был в отпуске, и перевести деньги с его карты в ВТБ сейчас непросто, потому что карта — в расположении, до ближайшего банка ехать далеко, а он сам — на линии фронта. Мы фактически живем с выплат на ребенка, на мне кредиты — у меня полпенсии уходит на их оплату. Квартира по Росреестру находится под арестом, хотя арест по квартирам кооператива арест истек — а я боюсь ехать в Белгород, чтобы решать по ней вопрос. Я с ребенком на улицу гулять не выхожу в нынешней военной обстановке — сирены воздушной тревоги постоянные. Побыстрее бы наши войска создали санитарную зону в Харьковской области!»

    По поводу покупки квартиры Лариса сообщает, что «ипотека точно никак не светила. Кооператив — это 14 тыс. в месяц и всего лишь 10 лет. В кооперативе даже студентка может приобрести квартиру, почти не переплачивая. При покупке через банк придется заплатить еще как минимум за одну квартиру».

    «Среди пайщиков кооператива очень много пенсионеров, социально незащищенных людей, это была их единственная возможность приобрести квартиру, — говорит Лариса. — Из-за репрессий против кооператива мы можем лишиться единственного жилья. Мы куда только не писали в защиту кооператива. Но, видимо, слишком большой куш. Кооперативу не дают даже платить налоги. Надеемся, что отношение к кооперативу в результате справедливого разбирательства изменится в лучшую сторону».

    «Мы очень устали. Но боремся»

    Людмила Гарина — пайщица кооператива из Саратова, зять которой, проживающий вместе с ней в кооперативной квартире, участвует в СВО. «Я проживаю в кооперативной квартире почти три года вместе с дочерью и внуком, вносим ежемесячные платежи через госуслуги».

    «Возможности взять ипотеку не было, — говорит Людмила. — Фактически у нас один работающий человек — дочь, зять мобилизован, внук — студент, внучке — четыре года. Мы с мужем пенсионеры».

    «У нас с кооперативом проблем не было никаких, — говорит она, — но сейчас уверенности в завтрашнем дне нет. Пишем во все возможные инстанции, в том числе в Администрацию президента, ходили на прием к Володину. Пока ничего не помогает. Вся надежда на то, что суд разберется».

    «Хотелось, чтобы вопрос о возобновлении работы кооператива быстрее решился, — говорит она, — тогда стало бы проще. Когда кооператив заработает, будет совершенно иная ситуация. Мы очень устали. Но боремся».

    «20 тыс. пайщиков кооператива не так просто остановить»

    Алла Яровая — пайщик кооператива из Пятигорска и представитель пайщицы Людмилы Дворцовой, сын которой, Игорь Дворцов, находился на СВО, а теперь служит внутри страны. «Людмила приобрела с помощью кооператива в Пятигорске квартиру для своего сына. Вступила в кооператив она в 2017 году, сначала находилась в накопительной программе — накапливала на первоначальный паевый взнос, накопила, потом стояла в очереди на приобретение жилье, приобрела с помощью кооператива однокомнатную квартиру за 1450 тыс. рублей. Потом приобрела квартиру и постепенно полностью за нее расплатилась. Работала для этого на двух работах, в том числе санитаркой в инфекционном отделении».

    Но оформить квартиру в собственность не удалось, так как она оказалась под арестом, поясняет Алла. И хотя арест 19 февраля истек и больше не накладывался, суд первой инстанции в Пятигорске этот арест подтвердил. «По вопросу получения права собственности и снятия ареста мы обратились в Пятигорский городской суд, где судья очень предвзято отнесся к решению вопроса и мы получили отказ, — говорит Алла, — Хотя аналогичный вопрос рассматривался в Минераловодском суде и там судья вынесла положительное решение и в настоящий момент пайщик получил право собственности на свою квартиру. Предстоит рассмотрение в апелляционной инстанции — несмотря на то, что рассматривать нечего: ареста на недвижимость кооператива сейчас нет. А на квартиру Людмилы Дворцовой — почему-то есть».

    «Кооператив — единственная возможность для людей со средним достатком получить жилье, — говорит Алла, — Нерешенный вопрос — налоги. Мы вынуждены платить налоги с юридических лиц, но мы же физические лица. К депутатам — с нас берут налог как с юрлица. Почему мы должны оплачивать — мы же физлица? Во многих регионах это сделано. Надеемся добиться того, чтобы это было сделано по всей стране».

    «20 тыс. пайщиков кооператива не так просто остановить, — подчеркивает пайщица. — Это наши деньги, и мы за них боремся. Обязательно отстоим наш кооператив!»

    «Активно участвую в защите кооператива»

    У пайщицы кооператива, жительницы из Ленинградской области Татьяны Власенко старший сын находится на СВО с сентября 2022 года. «Три месяца проходил обучение, а потом оказался „за ленточкой“, — говорит Татьяна. — Мы должны были в конце лета 2022 года купить квартиру с помощью кооператива — квартиру планировали большую. Но работа кооператива оказалась заблокирована, и кооператив не может ничего купить уже более двух лет, так как и его счета, и его деятельность заблокированы. Деньги пайщиков, собранные для приобретения квартир, при этом обесцениваются».

    «Я активно участвую в защите нашего кооператива, — говорит Татьяна. — Езжу на все суды в Санкт-Петербурге, хотя живу в деревне — ехать два с половиной, а то и три часа, мне 64 года, а путь неблизкий. И сын в этом поддерживает меня».

    «Вот уже более двух лет работа кооператива заблокирована, деньги обесцениваются»

    У пайщицы из Хабаровска Натальи Ромашко на СВО было два племянника — один, к сожалению, погиб. Планировалась покупка большой квартиры в Хабаровске, Наталья состояла в накопительной программе. «Вот уже более двух лет работа кооператива заблокирована, деньги обесцениваются, — говорит Наталья. — Я участвую в защите кооператива, пишу письма в прокуратуру, в высшие государственные инстанции, потому что нарушаются наши права, нас лишают возможности приобрести квартиру вне ипотечной системы. Пока приходят одни отписки, но борьбу мы продолжаем!»

    «Ситуация — как на СВО»

    Пайщица Светлана Иванова из Новосибирска, волонтер СВО, планировала приобрести с помощью кооператива две квартиры — для себя и для сына, который воюет на СВО добровольцем. «До этого я продала квартиру и сейчас вообще без собственного жилья, — говорит она. — Вступила в кооператив по накопительной программе, рассматривали для приобретения квартиры Крым и Новосибирск. В СВО участвую как волонтер — не остаюсь в стороне, когда Родине нужна помощь».

    «От ситуации с кооперативом очень многие люди пострадали, — говорит Светлана. — Ситуация — как на СВО. И еще больше пострадают, если реализуется плохой сценарий. Хочется надеяться на то, что все образуется, правда восторжествует. Заявление о выходе из кооператива и возврате паевых средств я не подавала. Готова продолжить участие в нем, готова приобрести недвижимость с его помощью: это самый лучший вариант покупки квартиры».

    «Сдаваться в планах нет»

    Пайщица Марина Янковская родом из Хабаровска, она переехала в Новороссийск, ее супруг погиб на СВО. «У нас уже подходила очередь на покупку квартиры в Новороссийске для нашей семьи, мы должны были подбирать объект, — рассказывает она. — Но два года назад все остановилось. Хотели приобрести двухкомнатную квартиру в Новороссийске. Деньги лежат на арестованных счетах кооператива — а недвижимость за это время подорожала. Надеемся хоть что-то приобрести после того, как счета разблокируют».

    «Мы всячески поддерживаем кооператив, — говорит Марина. — Записывали видео, что мы не обманутые, а вполне довольные пайщики, объясняли, что это никакая не пирамида, а организация, созданная в помощь людям. Ждем, когда снимут эти аресты. Сдаваться в планах нет».

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。