将基于 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"

演示: http://jsfiddle.net/0fgmham3/