我通过视频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,但它无法工作!
答案 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
}
};
});
下面:
country
是countries
country-dir
是指令(具有countryDir
的规范化形式。)"=countryDir"
是对country-dir
属性的双向绑定(恰好是指令本身,但不一定是)countryObj
是绑定到country
对象的内部隔离范围属性,以防您希望内部名称与属性不同。否则,它可能已缩短为countryDir: "="
。