2017-07-27 10 views
0

私は奇妙な問題が1つありますが、この問題は見たことがありません。私は<a>をクリックして入力するとscopeの値を入力しようとしていますが、他の入力を満たしてから次の入力を行った場合、<a>の値は削除されます。これがなぜ起こっているのかアドバイスしていますか?入力のng-clickクリア値

file.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としてコントローラです。 問題:2つの上部の入力が満たされている場合は、私が第三の入力に'fa fa-3x fa-battery-quarter text-primary level-higher-easy'を挿入するためにproduct.easyLevel()をクリックし、上記の入力は、それはあなたがproductDataオブジェクトにだけlevelプロパティを変更したいthis.becauseようにする必要があり

+1

は '試し定義だapp.productData.level = "FA FA-3X FA-バッテリー四半期テキストプライマリレベルの高い使いやすい" app.easyLevel''で '機能 –

+0

@ハディが正しいです。この場合、レベルのみを設定する必要がある場合は、オブジェクト全体を上書きしています。 – yBrodsky

+0

@Hadiエラーが発生します。プロパティの 'level'を未定義に設定できません。 –

答えて

1

を削除しています。最初に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;

関連する問題