我试图在我使用基于角度的指令中传递基于类的对象作为参数。
当我说“基于类”时,​​我的意思是一个函数对象,如以下示例所示:

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/

10-07 14:52