【发布时间】:2017-07-27 16:25:27
【问题描述】:
我有一个奇怪的问题,我从未见过这个问题。我尝试在单击<a> 时将scope 值输入到输入中,一切正常,但是,如果我已经填写了其他输入,然后单击<a>,其余输入中的值将被删除。你有什么建议为什么会这样吗?
文件.html
<input ng-disabled="product.disabled" type="text" ng-model="product.productData.oldPrice" name="oldPrice" class="form-control" ng-pattern="/^[0-9]*$/" required>
<input ng-disabled="product.disabled" type="text" ng-model="product.productData.newPrice" name="newPrice" class="form-control" ng-pattern="/^[0-9]*$/" required>
<input ng-disabled="product.disabled" type="text" name="level" class="form-control" ng-model="product.productData.level" required>
<div class="input-group-addon level-add">
<a ng-click="product.easyLevel()" class="add-field add-field-easy">
<i class="fa fa-battery-quarter"></i>
</a>
</div>
controller.js
app.easyLevel = function(){
app.productData = {
level: 'fa fa-3x fa-battery-quarter text-primary level-higher-easy'
}
}
服务
userFactory.createNewCourse = function(productData){
return $http.post('/api/courses', productData)
}
变量:app = this,product 是控制器。
问题:如果两个上部输入被填充并且我单击product.easyLevel() 在第三个输入中插入'fa fa-3x fa-battery-quarter text-primary level-higher-easy',则上述输入被删除
【问题讨论】:
-
在
app.easyLevel函数中尝试app.productData.level ="fa fa-3x fa-battery-quarter text-primary level-higher-easy" -
@Hadi 是对的。当你应该只设置一个值时,你正在覆盖整个对象,在这种情况下是 level
-
@Hadi 我收到错误无法设置未定义的属性“级别”
-
你应该先声明
app.productData = {}。 -
@Hadi 谢谢,效果很好
标签: javascript angularjs express