当我循环浏览它时,我的控制器中有人物类型的列表它工作正常,并从列表中显示所有人的姓名。 我已经定义了一个控制器来显示结构化数据的原因,但它不允许将自定义指令的范围绑定到人名的值 这件作品很好
<div ng-app="myapp">
<div ng-controller="MyController">
<div ng-repeat="per in person">
<!-- <test user=" -->
{{per.firstName}}
<!-- "></test> -->
</div>
但是当我尝试将自定义指令的范围绑定到对象名字时,AngularJS会抛出错误
错误:[$ parse:syntax]语法错误:令牌&#39; {&#39;表达式[{{per.firstName}}]第2列的无效键,从[{per.firstName}}开始。
<div ng-repeat="per in person">
<test user=" {{per.firstName}}"></test>
</div>
</div>
</div>
AngularJs cond:
var myapp=angular.module('myapp',[]);
myapp.controller('MyController',function($scope){
$scope.person=[
{firstName:"ali1",
lastName:"ahmad"
},
{firstName:"ali2",
lastName:"ahmad3"
},
{firstName:"ali4",
lastName:"ahmad"
},
{firstName:"ali5",
lastName:"ahmad"
},
];
});
myapp.directive('test',function(){
var directive={}
directive.restrict="E";
directive.template="Name : {{user.firstName}}";
directive.scope={
user:"=user"
}
return directive;
});
如何将自定义指令与object指令的值绑定。?
答案 0 :(得分:1)
绑定到范围时,只需传递对象,不需要{{}},所以
user="per.firstName"
答案 1 :(得分:1)
更改此行
<test user=" {{per.firstName}}"></test>
要
<test user="person"></test>
在指令中使用ng-repeat。 首先将控制器中的数据发送到您的指令
<test user="person"></test>// Here you are sending whole array
然后收到您的user
,其中包含person
的引用
然后在你的指令里面接收user
的某个变量,因为你在指令范围user: "=user"
答案 2 :(得分:1)
试试这个:
<test user="per"></test>
HTML:
myapp.directive('test', function () {
return {
restrict: 'E',
scope: {
user: '='
},
template: 'Name : {{user.firstName}}'
};
});