$scope$带有复杂变量的手表
$scope.$watch with a complex variable
我需要$scope$观察这样一个变量:
$scope.data.localization[$scope.locale].properties[0].value
$scope.data.location[$scope.locale].properties是一个对象数组,其中每个对象都有一个代码和一个值,我使用这些对来创建动态表单:
<input type="text" ng-repeat="property in $scope.data.localization[$scope.locale].properties" ng-model="property.value" />
现在,只有当另一个文本框有值时,一些文本框才必须可见,所以基本上我想要$scope$观察其中一个值,但它不起作用,$watch的回调从未启动:
$scope.$watch("data.localization." + $scope.locale +".properties[0].value", function () {
//show/hide another texbox if I have a value
});
知道如何实现吗?
编辑:我试过
$scope.$watch("data.localization", function () {
//show/hide another texbox if I have a value
});
并且它触发了回调,所以看起来问题出在动态属性$scope.locale上,但我不知道如何避免这种情况。
问题是,如果我观察整个数组,我不知道什么值发生了变化。
试试这个:
var myWatcher = "data.localization." + $scope.locale +".properties[0].value";
$scope.$watch(myWatcher, function () {
//show/hide another texbox if I have a value
});
您可以使用手表中的函数来返回手表的值。尝试:
$scope.$watch(function () { return $scope.data.localization[$scope.locale].properties[0].value; } , function () {
//show/hide another texbox if I have a value
});
相关文章:
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 值对象在某个变量发生更改后发生更改
- Javascript变量赋值|
- AngularJS-在JSON选择器中使用变量名
- Javascript计数器变量未显示正确的值
- delete关键字在全局变量上的不同行为
- 如何在php变量中嵌入JQuery代码
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- $scope$带有复杂变量的手表
- angular$watch-can'当集合是相同的变量时,不要让手表开火
- 如何在单个手表变量中组合多个过滤值