Javascript 角度数据-前缀属性访问
我有一个简单的控制器,想要访问一个分配了Javascript 角度数据-前缀属性访问,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个简单的控制器,想要访问一个分配了data-前缀的变量(从服务器)。下面的代码显示未定义的。在这种情况下,为什么是myId以及如何访问myId?如果data my id=“12345”是错误的方法,那么正确的方法是什么 链接: HTML: 如果这是绝对需要的,那么您可以通过给标记一个控制器并使用$attrs: 如果这是绝对需要的,那么您可以通过给标记一个控制器并使用$attrs: 您认为data-X应该在作用域上启动X值的前提是错误的。 angular编译DOM时,会检查是否有与X匹配的指
data-
前缀的变量(从服务器)。下面的代码显示未定义的
。在这种情况下,为什么是myId以及如何访问myId?如果data my id=“12345”
是错误的方法,那么正确的方法是什么
链接:
HTML:
如果这是绝对需要的,那么您可以通过给
标记一个控制器并使用$attrs:
如果这是绝对需要的,那么您可以通过给
标记一个控制器并使用$attrs:
您认为
data-X
应该在作用域上启动X
值的前提是错误的。angular编译DOM时,会检查是否有与X匹配的指令定义。
在您的情况下,没有
myIdDirective
,因此没有任何功能附加到该元素,只有一个具有属性的常规元素
在这种情况下,即使是ngInit
也无济于事,因为控制器是在预链接阶段之前实例化的
您可以使用$attrs
获得如下属性值:
这是一个扑克牌:
模板:
<body ng-controller="MainCtrl" data-my-id="12345">
<p>Hello {{name}}!</p>
</body>
app.controller('MainCtrl', function($scope,$attrs) {
$scope.name = 'My Id is ' + $attrs.myId;
});
您认为
data-X
应该在作用域上启动X
值的前提是错误的。angular编译DOM时,会检查是否有与X匹配的指令定义。
在您的情况下,没有
myIdDirective
,因此没有任何功能附加到该元素,只有一个具有属性的常规元素
在这种情况下,即使是ngInit
也无济于事,因为控制器是在预链接阶段之前实例化的
您可以使用$attrs
获得如下属性值:
这是一个扑克牌:
模板:
<body ng-controller="MainCtrl" data-my-id="12345">
<p>Hello {{name}}!</p>
</body>
app.controller('MainCtrl', function($scope,$attrs) {
$scope.name = 'My Id is ' + $attrs.myId;
});
更干净的角度方法是创建一个角度指令并从中读取值。您确实不应该使用角度控制器直接与DOM交互 创建新指令时,可以将
restrict
属性设置为a
,并将其命名为dataMyId
,这样它将绑定到具有data my id
属性的任何元素
然后,您可以从指令的控制器访问属性值。执行此操作的方法是创建一个角度指令并从那里读取值。您确实不应该使用角度控制器直接与DOM交互 创建新指令时,可以将
restrict
属性设置为a
,并将其命名为dataMyId
,这样它将绑定到具有data my id
属性的任何元素
然后,您可以从指令的控制器访问属性值。最好的方法是使用如下指令
<p data-my-id="12345" my-id>Hello {{name}}!</p>
最好的方法是使用如下指令
<p data-my-id="12345" my-id>Hello {{name}}!</p>
晚上一定太晚了。我在
$scope
和$attrs
之间搞砸了……LOLIt晚上编码一定太晚了。我在$scope
和$attrs
之间搞砸了……哈哈