Angularjs Angular.js$watch-一个字符串将成功传播,但一个变量赢了';T
我的代码中有以下视图:Angularjs Angular.js$watch-一个字符串将成功传播,但一个变量赢了';T,angularjs,angularjs-scope,watch,Angularjs,Angularjs Scope,Watch,我的代码中有以下视图: <div data-ng-controller="HelloCtrl"> {{counties.selected}} </div> 但是,当$scope.countries.selected设置为以下变量时,html不会更新控制台日志(newValue)显示newValue已设置预期值: $scope.$watch('counties.selected', function(newValue, oldValue) { cons
<div data-ng-controller="HelloCtrl">
{{counties.selected}}
</div>
但是,当$scope.countries.selected
设置为以下变量时,html不会更新<代码>控制台日志(newValue)代码>显示newValue已设置预期值:
$scope.$watch('counties.selected', function(newValue, oldValue) {
console.log(newValue);
$scope.counties.selected = newValue;
}))
为什么不将
newValue
传播到html?您不需要$watch这个值。它将自动更新
下面是watcher的工作示例,但是这个$watch
有多余部分
您不需要$watch这个值。它将自动更新 下面是watcher的工作示例,但是这个
$watch
有多余部分
您不需要$watch这个值。它将自动更新 下面是watcher的工作示例,但是这个
$watch
有多余部分
您不需要$watch这个值。它将自动更新 下面是watcher的工作示例,但是这个
$watch
有多余部分
我将使用工厂在两个控制器之间传递数据。我们可以将CountiesFactory作为依赖项注入注入两个控制器,修改一个控制器中的对象将影响另一个控制器中的值 JS
angular.module('testApp', [])
.controller('MyFirstCtrl', function($scope, CountiesFactory) {
$scope.temp = CountiesFactory;
})
.controller('MySecondCtrl', function($scope, CountiesFactory) {
$scope.counties = CountiesFactory;
})
.factory('CountiesFactory', function() {
return {
options: [
{
text: 'blah blah',
value: 1
},
{
text: 'meh meh',
value: 2
}
]
}
})
HTML
<body ng-app='testApp'>
<div ng-controller='MyFirstCtrl'>
<select ng-model='temp.selected' ng-options='option.text for option in temp.options'></select>
</div>
<div ng-controller='MySecondCtrl'>
{{ counties.selected }}
</div>
</body>
{{countries.selected}}
我将使用工厂在两个控制器之间传递数据。我们可以将CountiesFactory作为依赖项注入注入两个控制器,修改一个控制器中的对象将影响另一个控制器中的值
JS
angular.module('testApp', [])
.controller('MyFirstCtrl', function($scope, CountiesFactory) {
$scope.temp = CountiesFactory;
})
.controller('MySecondCtrl', function($scope, CountiesFactory) {
$scope.counties = CountiesFactory;
})
.factory('CountiesFactory', function() {
return {
options: [
{
text: 'blah blah',
value: 1
},
{
text: 'meh meh',
value: 2
}
]
}
})
HTML
<body ng-app='testApp'>
<div ng-controller='MyFirstCtrl'>
<select ng-model='temp.selected' ng-options='option.text for option in temp.options'></select>
</div>
<div ng-controller='MySecondCtrl'>
{{ counties.selected }}
</div>
</body>
{{countries.selected}}
我将使用工厂在两个控制器之间传递数据。我们可以将CountiesFactory作为依赖项注入注入两个控制器,修改一个控制器中的对象将影响另一个控制器中的值
JS
angular.module('testApp', [])
.controller('MyFirstCtrl', function($scope, CountiesFactory) {
$scope.temp = CountiesFactory;
})
.controller('MySecondCtrl', function($scope, CountiesFactory) {
$scope.counties = CountiesFactory;
})
.factory('CountiesFactory', function() {
return {
options: [
{
text: 'blah blah',
value: 1
},
{
text: 'meh meh',
value: 2
}
]
}
})
HTML
<body ng-app='testApp'>
<div ng-controller='MyFirstCtrl'>
<select ng-model='temp.selected' ng-options='option.text for option in temp.options'></select>
</div>
<div ng-controller='MySecondCtrl'>
{{ counties.selected }}
</div>
</body>
{{countries.selected}}
我将使用工厂在两个控制器之间传递数据。我们可以将CountiesFactory作为依赖项注入注入两个控制器,修改一个控制器中的对象将影响另一个控制器中的值
JS
angular.module('testApp', [])
.controller('MyFirstCtrl', function($scope, CountiesFactory) {
$scope.temp = CountiesFactory;
})
.controller('MySecondCtrl', function($scope, CountiesFactory) {
$scope.counties = CountiesFactory;
})
.factory('CountiesFactory', function() {
return {
options: [
{
text: 'blah blah',
value: 1
},
{
text: 'meh meh',
value: 2
}
]
}
})
HTML
<body ng-app='testApp'>
<div ng-controller='MyFirstCtrl'>
<select ng-model='temp.selected' ng-options='option.text for option in temp.options'></select>
</div>
<div ng-controller='MySecondCtrl'>
{{ counties.selected }}
</div>
</body>
{{countries.selected}}
为什么有$scope.$监视“countries.selected”,然后修改$scope.countries?在控制器中直接更改$scope.countries.selected不会导致视图更新吗?这是我所期望的,但更新没有发生。我正在试图找出如何将更改传播到包含{{countries.selected}}
的所有视图。为什么在“countries.selected”上有$scope.$watch,然后修改$scope.countries?在控制器中直接更改$scope.countries.selected不会导致视图更新吗?这是我所期望的,但更新没有发生。我正在试图找出如何将更改传播到包含{{countries.selected}}
的所有视图。为什么在“countries.selected”上有$scope.$watch,然后修改$scope.countries?在控制器中直接更改$scope.countries.selected不会导致视图更新吗?这是我所期望的,但更新没有发生。我正在试图找出如何将更改传播到包含{{countries.selected}}
的所有视图。为什么在“countries.selected”上有$scope.$watch,然后修改$scope.countries?在控制器中直接更改$scope.countries.selected不会导致视图更新吗?这是我所期望的,但更新没有发生。我试图找出如何将更改传播到包含{{countries.selected}}
的所有视图中。只有当{{countries.selected}
与我用来更新模型的
位于同一视图中时,更新才会自动发生。我试图做的是在另一个视图中更新“{countries.selected}}”。@user1577173如果您创建controllerHelloCtrl
的另一个实例,那么您将创建另一个$scope
和其他countries.selected
值@user1577173如果希望在控制器之间共享数据,则需要创建服务。只有当{{countries.selected}
与我用来更新模型的
在同一视图中时,更新才会自动发生。我试图做的是在另一个视图中更新“{countries.selected}}”。@user1577173如果您创建controllerHelloCtrl
的另一个实例,那么您将创建另一个$scope
和其他countries.selected
值@user1577173如果希望在控制器之间共享数据,则需要创建服务。只有当{{countries.selected}
与我用来更新模型的
在同一视图中时,更新才会自动发生。我试图做的是在另一个视图中更新“{countries.selected}}”。@user1577173如果您创建controllerHelloCtrl
的另一个实例,那么您将创建另一个$scope
和其他countries.selected
值@user1577173如果希望在控制器之间共享数据,则需要创建服务。只有当{{countries.selected}
与我用来更新模型的
在同一视图中时,更新才会自动发生。我试图做的是在另一个视图中更新{{countries.selected}}。@user1577173如果您创建了controllerHelloCtrl
的另一个实例,那么您就创建了另一个$scope