如果我使用的是独立作用域,我可以通过属性传递变量。
即
<my-directive baz='foo.bar'>
然后,在指令的 Javascript 上
.directive('myDirective', function() {
return {
scope: {
'baz': '='
}
}
});
有什么方法可以对继承范围做类似的事情吗?链接函数只是传递字符串。
现在我正在自己解析变量并将其与 scope.$parent 匹配。似乎应该有一个辅助函数或更简单的方法来做到这一点。
最佳答案
使用$eval
或$parse
:
<my-directive baz='foo.bar'>
.directive('myDirective', function($parse) {
return {
scope: true,
link: function(scope, element, attrs) {
console.log(scope.$eval(attrs.baz));
var model = $parse(attrs.baz);
console.log(model(scope));
// if you want to modify the value, use the model, not $eval:
model.assign(scope, "new value");
}
}
});
关于javascript - Angularjs 将变量传递给具有继承(非隔离)范围的指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18496175/