将基于 class 的对象传递给 angular 指令
Passing a class-based object to angular directive
我试图在 angular 中使用一个指令,我将一个基于 class 的对象作为参数传递。
当我说 "class-based" 时,我的意思是像这个例子中的函数对象:
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"
我试图在 angular 中使用一个指令,我将一个基于 class 的对象作为参数传递。 当我说 "class-based" 时,我的意思是像这个例子中的函数对象:
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"