AngularJS指令中的指令没有设置作用域值
AngularJS directive in directive is not setting up scope value
我有一个控制器,$scope.colorHex
值
例如,我有指令colorpickerTooltip
,在模板中我调用另一个指令:<colorpicker ng-model="colorHex"></colorpicker>
然后在第二个指令(colorpicker
)中我设置了控制器的值:
scope.colorHex = '#cecece';
,然后在第二个指令我调用方法scope.doIt()
,但有些事情是错误的:
我的$scope
值没有更新!但为什么,也许是因为我的两级指令?
如何设置控制器变量值?
第二个指令复制第一个指令的值,并在第二个作用域中创建一个新对象。您可以通过使用诸如
这样的客观结构来防止它$scope.color= {hex=undefined};
并在
内部范围内更改它$scopescope.color.hex = '#cecece';
它将防止这种情况
是的,这是二级指令范围的问题。请阅读https://github.com/angular/angular.js/wiki/Understanding-Scopes
将控制器中的colorHex
定义为如下对象:
$scope.dataStore = {};
$scope.dataStore.colorHex = '#cecece';
然后将第一个指令修改为:
<colorpicker ng-model="dataStore.colorHex"></colorpicker>
然后在你的第二个指令中使用它来更新doIt
方法:
$scope.doIt = function() {
$scope.dataStore.colorHex = '#fff';
}
相关文章:
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 如何为通过ng-view指令或ng-controller指令创建的每个新作用域设置侦听器
- 在 ng-click 中设置$scope变量指令
- AngularJS:从指令设置范围变量
- 角度指令和属性Don'在控制器内创建和设置时无法工作
- 如何将多槽transclude作用域设置为指令作用域
- 如何在自定义指令中将字段设置为$dirty
- 在自定义指令中角度设置新变量
- 使用 AngularJS 从指令设置范围变量
- 如何访问Angular JS模板指令中设置的值,如“ng class?”
- 在AngularJS中对指令的隔离作用域设置新属性
- 设置要显示的文本格式的指令
- 为什么从指令中更改外部作用域需要 scope.$apply(),即使我将范围选项设置为 false
- 如何在角度 js 中为指令设置动画
- ngif中的angular自定义指令-设置其绝对子's宽度
- 通过angular指令设置元素的属性text/value
- 在ng-repeat中使用指令设置$setValidity
- 我是否需要为这个指令设置一个单独的作用域?
- AngularJS:如何根据指令设置ng模型或更改范围值
- 从指令设置表单元素的属性