Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度数据-前缀属性访问_Javascript_Html_Angularjs - Fatal编程技术网

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
之间搞砸了……哈哈