AngularJS:为什么指令不会在范围内看到对象

时间:2014-06-15 15:22:03

标签: angularjs angular-directive

我正在试验Angular。为了这个问题,我改变了this fiddle

当我尝试访问范围变量"密码"和" password_confirmation"从指令,这样它显示它们很好。见this fiddle。像这样:

scope.$apply(function(){
          scope.passwordAsSeenByDirective = scope['password'] + "...";
          scope.password_confirmationAsSeenByDirective = scope['password_confirmation'] + "...";
        });

但是当我创建一个对象并将它们作为属性放在那里时,我再也无法访问它们了。见this fiddle。像这样:

scope.$apply(function(){
          scope.passwordAsSeenByDirective = scope['obj.password'] + "...";
          scope.password_confirmationAsSeenByDirective = scope['obj.password_confirmation'] + "...";
        });

怎么回事?

2 个答案:

答案 0 :(得分:1)

我不能给你完整的答案,因为我自己还在学习AngularJS。然而,我可以传授的一点帮助是你无法访问像scope [“foo.bar”]这样的变量。 “foo.bar”是一个Angular Expression,而不是属性语法,因此必须使用$ parse进行解析或使用scope进行求值。$ eval

答案 1 :(得分:1)

试试这个scope['obj']['password']