我的范围变量有问题。当我打开表单时,内容在输入字段中正确显示。但是当我更改它们并且ok函数触发时,不会显示更改。相反,我得到form.name的内容。为什么范围不是由输入字段的ng-model更新?
app.controller('updateFormCtrl', function( $scope, $modalInstance, APIService, form) {
$scope.name = form.name;
$scope.ok = function() {
alert($scope.name)
};
});
查看:
<div class="col-sm-10"><input ng-model="name" type="text" class="form-control" placeholder="Categorie"></div>
编辑:这是另一个控制器:
$scope.updateForm = function( form ) {
var modalInstance = $modal.open({
templateUrl: 'views/modals/updateForm.html',
controller: 'updateFormCtrl',
resolve: {
form: function() {
return form;
}
}
});
modalInstance.result.then(function() {
$scope.categories = APIService.query({ route:'category' });
});
};
编辑2:
<div class="modal-footer">
<button type="button" class="btn btn-default" ng-click="cancel()">Abbrechen</button>
<button type="button" class="btn btn-primary" ng-click="ok()">Speichern</button>
</div><!-- /.modal-footer -->
答案 0 :(得分:0)
这是因为$scope.ok
未在updateFormCtrl
内定义。基本上,您的ok()
无法读取您在文本框中所做的更改。
尝试在控制器内移动$scope.ok
。
app.controller('updateFormCtrl', function( $scope, $modalInstance, APIService, form) {
$scope.name = form.name;
$scope.ok = function() {
alert($scope.name)
};
});
答案 1 :(得分:0)
我认为这是解决方案: