我遇到了一个问题,我决定在完成解决后从我的示波器中查看某个元素。出于某种原因,当我从这个片段中运行第二行时它会运行,我似乎无法在“解析”期间添加此$ watch。
我理解承诺是异步的,但我怎么知道我的决心何时完成然后添加手表呢?
可以通过代码或UI更改variableToWatch(否则我只会使用ng-change =“doWork()”)
$scope.variableToWatch = $route.current.locals.data.initialValue;
$scope.listOfDependantData = $route.current.locals.data.items;
$scope.$watch('variableToWatch', function (newValue) {
myService.getNewDependantData(newValue).$promise.then(
function (items) {
$scope.listOfDependantData = items;
}
);
};
答案 0 :(得分:1)
<强>更新强>
如果您只想在初始设置值后更改时运行代码,则可以使用watchFunc
的第二种形式作为第二个参数传递给{{1 }}:
$scope.$watch
我没有完全遵循这个问题,但我怀疑你想看$scope.$watch('variableToWatch', function (newValue, oldValue) {
if (typeof newValue !== 'undefined' && newValue !== oldValue) {
// Use the new value here ...
}
});
而不是$route.current.locals.data.initialValue
的价值?
在这种情况下,您可以使用$scope.varibleToWatch
的替代形式和$scope.$watch
作为第一个参数:
function
或者,如果你想观察$scope.$watch(function () { return $route.current.local.data.intialValue; }, function (newValue) {
// ...
};
中$scope
所包含的sting所引用的变量,那么你可以使用它:
$route.current.local.data.initialValue
这会解决您的问题吗?