我正在试验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'] + "...";
});
怎么回事?
答案 0 :(得分:1)
我不能给你完整的答案,因为我自己还在学习AngularJS。然而,我可以传授的一点帮助是你无法访问像scope [“foo.bar”]这样的变量。 “foo.bar”是一个Angular Expression,而不是属性语法,因此必须使用$ parse进行解析或使用scope进行求值。$ eval
答案 1 :(得分:1)
试试这个scope['obj']['password']