我可以使用ng-click使用AngularJS将数据绑定到另一个元素吗?

时间:2015-04-24 18:40:00

标签: angularjs

Angular的新手,并尝试用它来替换一些jQuery功能。

我在国家和省份有基本的UL / LI设置:

<div ng-app="FindRep">
  <ul class="country-list" ng-controller="LocController">
    <li data-ng-repeat="country in countries">
      <a data-repId="{{country.repId || '-1'}}">{{country.Name}}</a>
      <ul class="provinces-list" style="display: none">
        <li data-ng-repeat="province in country.provinces">
          <a data-repId="{{province.repId}}">{{province.Name}}</a>
        </li>
      </ul>
    </li>
  </ul>

  <!-- Testing here -->
  RepID: {{RepID}}
</div>

我在尝试使用Angular之前使用jQuery构建它的方式是,如果一个国家/地区有一个存在于整个国家/地区的代表,就像没有等于&#34; -1&#34;,我会转到下一步,从HTML5数据属性中获取RepID:

var repId = $(this).data("repid");

然后继续执行与基于该ID的问题无关的其他操作。

如果该国家/地区不存在代表,则表示该国家/地区的代表有个别代表,我会使用jQuery显示省份列表,允许用户点击其中一个,然后继续执行基于该repID的其他操作。

这可能非常简单,但我一直在使用jQuery,我认为这是一个常见的问题。

我通过Web API提取初始数据。我想了解/弄清楚该怎么做:

  1. 如果repId =&#34; -1&#34;
  2. ,则使用class provinces-list创建UL的显示/隐藏
  3. 基本上它会继续进行,直到一个国家或省有一个代表,一旦它有:
  4. 能够在应用范围内的任何其他地方绑定我想要的任何数据属性。
  5. 所以,如果我有:

    <div ng-app="FindRep">
       Anywhere within my app, I'd like to be able to use {{repId}} {{repName}} and so on.
    </div>
    

    我尝试过的事情

    我尝试使用工厂来保存有关代表的初始空白数据,例如:

    app.factory("rep", function() {
      var data = {
        repid: null,
        repname: ''
      };
    
      return {
        GetRepId: function() {
          return data.RepID
        },
        etc.
      }
    

    然后使用ng-click调用此函数并从(this)访问数据。

    我在漫步,我想我只需要一个例子,或者向正确的方向努力。如果不使用jQuery作为拐杖,这比我想象的更难。

0 个答案:

没有答案