Angular: 更新作用域内的作用域
Angular: update scope inside scope
我有一个带有 2 个范围的控制器:
app.controller('search', function($scope) {
$scope.value1 = '';
$scope.value2 = 'Some text' + $scope.value1;
}
还有一个输入字段:
<input type="text" ng-model="value1">
当我用输入字段更改值 1(有效)时,值 2 没有更新。我怎样才能使这项工作?
声明对象时可以遵循点规则。那会给你 prototypal inheritance 东西。 param1
和 param2
都将引用同一个对象副本。这样更新一个就会自动更新另一个。
标记
<input type="text" ng-model="param1.value">
<input type="text" ng-model="param2.value">
控制器
app.controller('search', function($scope) {
$scope.param1 = {value : ''};
$scope.param2 = $scope.param1;
}
更新
如果你想将这些变量保持为原始变量,那么你必须像这里一样在某些事件上更新它们,你可以使用 ng-change
指令
标记
<input type="text" ng-model="value1" ng-change="value2 = value1 + ' something'">
或者您可以将内联 html 代码移动到您的控制器函数以使其可测试。
标记
<input type="text" ng-model="value1" ng-change="changedValue()">
代码
$scope.changedValue = function(){
$scope.value2 = $scope.value1 + ' something'
}
我有一个带有 2 个范围的控制器:
app.controller('search', function($scope) {
$scope.value1 = '';
$scope.value2 = 'Some text' + $scope.value1;
}
还有一个输入字段:
<input type="text" ng-model="value1">
当我用输入字段更改值 1(有效)时,值 2 没有更新。我怎样才能使这项工作?
声明对象时可以遵循点规则。那会给你 prototypal inheritance 东西。 param1
和 param2
都将引用同一个对象副本。这样更新一个就会自动更新另一个。
标记
<input type="text" ng-model="param1.value">
<input type="text" ng-model="param2.value">
控制器
app.controller('search', function($scope) {
$scope.param1 = {value : ''};
$scope.param2 = $scope.param1;
}
更新
如果你想将这些变量保持为原始变量,那么你必须像这里一样在某些事件上更新它们,你可以使用 ng-change
指令
标记
<input type="text" ng-model="value1" ng-change="value2 = value1 + ' something'">
或者您可以将内联 html 代码移动到您的控制器函数以使其可测试。
标记
<input type="text" ng-model="value1" ng-change="changedValue()">
代码
$scope.changedValue = function(){
$scope.value2 = $scope.value1 + ' something'
}