对angularJS

时间:2015-10-03 03:57:53

标签: javascript angularjs angularjs-directive angularjs-scope

我通过视频Introduction to Angular.js in 50 Examples学习angulaJS,它真棒,但我从#46开始感到困惑。比方说,我们希望从json文件中获取一些国家/地区的信息并显示它,我们有一个指令定义:

countryApp.directive('country', function () {
    return {
        scope: {
            country: '=country'
        },
        restrict: 'A',
        templateUrl: 'country.html'
    };
});

我们在一些html中调用指令country:

<ul>
    <li ng-repeat="country in countries" country="country"></li>
</ul>

我的问题是:4个不同名词&#34; country&#34;的确切含义是什么?是什么? 指令范围中的前两个(国家:&#39; =国家&#39;),html中的最后两个(country =&#34; country&#34;)。我理解第一个只是指令中的变量定义,所以它应该更改为另一个名称,如dir_country,但它无法工作!

1 个答案:

答案 0 :(得分:1)

以下是一个不同的例子:

<li ng-repeat="country in countries" country-dir="country">
.directive("countryDir", function(){
  return {
    scope: {
      countryObj: "=countryDir"
    },
    template: "<span>{{countryObj.name}}</span>",
    link: function(scope){
      console.log(scope.countryObj); // is the bound country object
    }
  };
});

下面:

  • countrycountries
  • 数组中项目的内部范围变量
  • country-dir是指令(具有countryDir的规范化形式。)
  • "=countryDir"是对country-dir属性的双向绑定(恰好是指令本身,但不一定是)
  • countryObj是绑定到country对象的内部隔离范围属性,以防您希望内部名称与属性不同。否则,它可能已缩短为countryDir: "="