Javascript 在附加属性和编译属性上使用双向绑定
我正在用另一个指令的指令附加html元素。我已经成功地使用answer将html元素添加到指令中 但是,通过指令添加到这些元素的值不会随着范围的改变而改变。比如说, 控制器代码:Javascript 在附加属性和编译属性上使用双向绑定,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,我正在用另一个指令的指令附加html元素。我已经成功地使用answer将html元素添加到指令中 但是,通过指令添加到这些元素的值不会随着范围的改变而改变。比如说, 控制器代码: var DatepickerDemoCtrl = function ($scope) { $scope.el=2; }; 定向链接功能 link: function link(scope,element, attrs) { element.attr('value', scope.el); //sets v
var DatepickerDemoCtrl = function ($scope) {
$scope.el=2;
};
定向链接功能
link: function link(scope,element, attrs) {
element.attr('value', scope.el); //sets value to 2 as expected
element.removeAttr("common-things");
scope.el = 1 //Does not change value to 1
$compile(element)(scope);
//Even changing the scope variable after a timeout, the value remains 2
$timeout(function(){
scope.el = 4
}, 2000);
}
可以在以下位置找到一个可用的plunker:
更改值后运行$compile会起作用,但它会重置元素中的所有值(例如更改属性并运行compile会删除当前的ng值)
如何从指令内部将值绑定到范围 有几种方法可以做到这一点,但我首先要介绍的方法是将scope变量作为独立作用域传递给内部指令,该独立作用域绑定有=属性。@tuckerjt07我尝试将作用域传递给独立作用域,然后在超时后触发函数,但仍然没有按预期更改值。()