foodMeApp.directive('fmRating', function() {
return {
restrict: 'E',
scope: {
symbol: '@',
max: '@',
readonly: '@'
},
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
attrs.max = scope.max = parseInt(scope.max || 5, 10);
...
那么,attrs
的目的是什么?不能访问通过attrs
传递的所有属性。为什么一个max的访问值不能作为attrs.max
而不是scope.max
为什么要像attrs.max=scope.max
那样分配回来?
谢了。
Attrs的目的是什么?
在与指令相同的元素上定义的属性有以下几个目的:
上面回答了
为什么像attrs.max=scope.max那样分配回来?
我能想到这样做的唯一原因是,万一其他指令需要看到这个属性/值(即指令间通信)。但是,另一个指令需要在该指令之后运行才能工作(这可以通过priority
指令设置来控制)。
问题内容: 请在这里查看示例 角需要,,以在所述分离的范围对象从父范围访问它来限定。 在这里使用 那么,目的是什么?无法访问通过传递的所有属性。为什么不能将max的一个访问值代替 为什么要分配回来像? 由于此应用程序是由Angular作者编写的,因此我希望有一个理由。 谢谢。 问题答案: attrs的目的是什么? 在与指令相同的元素上定义的属性有几个用途: 它们是将信息传递到使用隔离范围的指令的唯
问题内容: 我想在没有自己的模板的AngularJS中创建可重用的指令。我也想为该指令设置隔离范围。我的方法的最佳做法是什么?为什么我的示例不符合我的预期? 我希望可以分别从指令中编辑obj1和obj2。 HTML: JS: PLUNKR:http://plnkr.co/edit/Dw8IiFVSOZGjSTFGRMzZ 问题答案: 您的代码现在的工作方式是,每个指令的内容都绑定到父作用域,而不是
问题内容: 我首先尝试使用AngularJS自定义指令。 我在指令的链接功能中使用(或理解…)隔离范围时遇到麻烦。 这是我应用程序这部分的代码: view.html 是在viewCtrl范围内发布的变量,其中包含请求的xml字符串。 rawData.js raw-data.html 我不明白为什么弹出模式时会显示ID正确,但是当我尝试使用它时,其值是不确定的。 也许我对隔离的范围值(和)错了。 感
问题内容: 等号后的问号有特殊含义吗?即: 上面的意思是“无法解决’foo’时不会引发错误?” 问题答案: 是: “隔离”范围采用对象散列,该对象散列定义了一组从父范围派生的局部范围属性。这些本地属性对于为模板的别名设置别名很有用。本地定义是本地范围属性与其源的哈希值: 或-在本地范围属性和通过属性值定义的名称的父范围属性之间建立双向绑定。如果未指定名称,则假定属性名称与本地名称相同。给定 和的窗
问题内容: 我想编写带有隔离范围的指令,但也想使该范围可用于父范围的控制器。我找到了这个解决方案: 参见柱塞。 我觉得这有点丑陋,因为它涉及用HTML编写属性,而在控制器的代码中,您无法确定范围属性的来源。有一个更好的方法吗? 编辑: 此外,似乎在运行控制器“ Main”时$ scope.popup甚至不可用。指令的链接功能尚未执行? 问题答案: 为了保持适当的关注点分离,您不应该混合作用域。更不
问题内容: 我正在尝试从链接函数中查看模型值。 当我在控制器内更改模型值时,不会触发$ watch函数。 小提琴:http : //jsfiddle.net/dkrotts/BtrZH/4/ 我在这里想念什么? 问题答案: 问题是您输入的内容等于“ myModel”。您的范围中没有“ myModel”绑定。您要“建模”。那就是您指令范围内的内容。参见http://jsfiddle.net/BtrZ