Javascript 控制器内的作用域函数不根据视图中的ng模型更新值
嗨,我在从ng视图调用的控制器中获得了此函数:Javascript 控制器内的作用域函数不根据视图中的ng模型更新值,javascript,angularjs,Javascript,Angularjs,嗨,我在从ng视图调用的控制器中获得了此函数: productApp.controller('ModalInstanceCtrl', function ($scope, $modalInstance, productFactory, prodId) { $scope.ok = function () { console.log($scope.model_productDescription); $scope.$watch(['model_pro
productApp.controller('ModalInstanceCtrl', function ($scope, $modalInstance, productFactory, prodId) {
$scope.ok = function () {
console.log($scope.model_productDescription);
$scope.$watch(['model_productBrand,model_productName,model_productDescription,model_productPrice, model_productStock'], function() {
var stock = '';
if($scope.model_productStock) {
stock = 'AVAILABLE';
}else{
stock = 'NO STOCK';
}
var productObject = {
id : prodId,
prodBrand : $scope.model_productBrand,
prodName : $scope.model_productName,
description : $scope.model_productDescription,
price : $scope.model_productPrice,
prodStock : stock
}
productFactory.updateProductById(productObject, function successCallback(data) {
// do something here in data
}, function errorCallback(data, status) {
alert(data + ' Failed with error ' + status);
});
})
};
});
这是modal.htm正文:
&时代;
修改产品
产品品牌
产品类型
价格
$ .00
描述
{{prod.description}}
股票
接近
编辑产品
现在,如果我输入文本区域(例如),然后按ok按钮,它将进入这个功能。现在,既然textarea值已经更改,那么$scope.productDescription值不应该反映出来吗?看起来不是。我认为,无论何时在模型中进行更改,它都会覆盖$scope.model\u name值,我是否应该使用ng change或任何其他指令
尝试添加一块$watch,但也不起作用,有什么建议吗
附言:console.log($scope.model_productDescription);//显示旧的描述,尽管我更改了它
谢谢 最可能的原因是model.html正在创建子作用域。您对模型属性所做的更改是子级的本地更改,并且由于原型继承,无法在父级中看到 您可以尝试在控制器上创建一个对象,并对对象属性进行绑定
$scope.productObject={}代码>
将textarea绑定到
<textarea id="prod_description" class="form-control" ng-model="productObject.productDescription" cols="70" rows="3">{{prod.description}}</textarea>
{{prod.description}
现在更改将反映在productObject.productDescription
属性中
还可以浏览此wiki以了解作用域继承是如何工作的最可能的原因是model.html正在创建子作用域。您对模型属性所做的更改是子级的本地更改,并且由于原型继承,无法在父级中看到
您可以尝试在控制器上创建一个对象,并对对象属性进行绑定
$scope.productObject={}代码>
将textarea绑定到
<textarea id="prod_description" class="form-control" ng-model="productObject.productDescription" cols="70" rows="3">{{prod.description}}</textarea>
{{prod.description}
现在更改将反映在productObject.productDescription
属性中
还可以浏览此wiki以了解作用域继承是如何工作的最可能的原因是model.html正在创建子作用域。您对模型属性所做的更改是子级的本地更改,并且由于原型继承,无法在父级中看到
您可以尝试在控制器上创建一个对象,并对对象属性进行绑定
$scope.productObject={}代码>
将textarea绑定到
<textarea id="prod_description" class="form-control" ng-model="productObject.productDescription" cols="70" rows="3">{{prod.description}}</textarea>
{{prod.description}
现在更改将反映在productObject.productDescription
属性中
还可以浏览此wiki以了解作用域继承是如何工作的最可能的原因是model.html正在创建子作用域。您对模型属性所做的更改是子级的本地更改,并且由于原型继承,无法在父级中看到
您可以尝试在控制器上创建一个对象,并对对象属性进行绑定
$scope.productObject={}代码>
将textarea绑定到
<textarea id="prod_description" class="form-control" ng-model="productObject.productDescription" cols="70" rows="3">{{prod.description}}</textarea>
{{prod.description}
现在更改将反映在productObject.productDescription
属性中
也可以通过这个wiki来了解范围继承是如何工作的。。。从现在起,我将通过执行以下操作来修复它:
从这个角度来看:
嗯。。。我知道它看起来很难看,但是
谢谢你,不管怎样,我将勾选你的答案为正确,因为你给我的解决方案非常方便,唯一的问题是我的项目对于你提供的解决方案来说设计得有点糟糕:p但是很好 上帝。。。从现在起,我将通过执行以下操作来修复它:
从这个角度来看:
嗯。。。我知道它看起来很难看,但是
谢谢你,不管怎样,我将勾选你的答案为正确,因为你给我的解决方案非常方便,唯一的问题是我的项目对于你提供的解决方案来说设计得有点糟糕:p但是很好 上帝。。。从现在起,我将通过执行以下操作来修复它:
从这个角度来看:
嗯。。。我知道它看起来很难看,但是
谢谢你,不管怎样,我将勾选你的答案为正确,因为你给我的解决方案非常方便,唯一的问题是我的项目对于你提供的解决方案来说设计得有点糟糕:p但是很好 上帝。。。从现在起,我将通过执行以下操作来修复它:
从这个角度来看:
嗯。。。我知道它看起来很难看,但是
谢谢你,不管怎样,我将勾选你的答案为正确,因为你给我的解决方案非常方便,唯一的问题是我的项目对于你提供的解决方案来说设计得有点糟糕:p但是很好 添加绑定模型的html部分。另外,声明了方法ok
的控制器在哪里。@Chandermani完成了,用信息更新了它:)添加绑定模型的html部分。另外,声明了方法ok
的控制器在哪里。@Chandermani完成了,用信息更新了它:)添加绑定模型的html部分。还有,控制器在哪里