【问题标题】:ng-click clear values in inputsng-click 清除输入中的值
【发布时间】: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 = thisproduct 是控制器。 问题:如果两个上部输入被填充并且我单击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


【解决方案1】:

应该是这样的。因为你只想修改productData对象中的level属性。而且你应该首先声明productData对象。

app.productData = {};


app.easyLevel = function(){     
   app.productData.level =fa fa-3x fa-battery-quarter text-primary level-higher-easy"
  }
}

最好定义var vm = this; 而不是var app = this;

【讨论】:

    猜你喜欢
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 2016-04-09
    相关资源
    最近更新 更多