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 东西。 param1param2 都将引用同一个对象副本。这样更新一个就会自动更新另一个。

标记

<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;
}

Demo Plunkr

更新

如果你想将这些变量保持为原始变量,那么你必须像这里一样在某些事件上更新它们,你可以使用 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' 
}