我试图在我使用基于角度的指令中传递基于类的对象作为参数。
当我说“基于类”时,我的意思是一个函数对象,如以下示例所示:
var User = function() {};
var myUser = new User();
现在,让我们假设myUser在我的控制器范围内,并且我有此html。
<my:directive myUser="myUser" />
然后定义指令:
mainApp.directive('myDirective', [function() {
return {
scope: {
myUser: '='
},
restrict: 'E',
replace: true,
templateUrl: 'partials/myDirective.html',
controller: function($scope) {
console.log($scope.myUser);
}
};
}]);
问题是,我在指令的控制器中看不到myUser。
我最初是用
=
声明了参数声明的方式(它必须与对象一起使用,而我的对象是function
)因此,我尝试使用
&
进行更改,但问题仍然存在。有人可以帮我吗?我究竟做错了什么?甚至有可能通过这种物体?
最佳答案
问题是您如何在HTML中使用属性。
代替:
myUser="myUser"
它应该是:
my-user="myUser"
演示:http://jsfiddle.net/0fgmham3/