清除ng-model然后使用新值更新ng-model

时间:2016-08-18 09:37:46

标签: angularjs ionic-framework

角度和离子应用

我有一个包含大量animalsKV.combineByKey( Map(_), // First met entries keep wrapped within a map from their country to their color (m: Map[String, String], entry: (String, String)) => if(entry._1 == "america") Map(entry) // If one animal in "america" is found, then it should be the answer value. else m + entry, //Otherwise, we keep track of the duplicates (a: Map[String, String], b: Map[String, String]) => //When combining maps... if(a contains "america") a // If one of them contains "america" else if(b contains "america") b //... then we keep that map else a ++ b // Otherwise, we accumulate the duplicates ) 元素的表单。该表单允许用户从列表中选择或<select>输入值。然后我将值保存到另一个if the <option> = 'Other' then I show another <input>

ng-model

我最初使用 <select data-ng-model="minor.tests.liveEarth" name="minorTestLiveEarth" required> <option></option> <option>>200</option> <option>>299</option> <option>>500</option> <option>>1000</option> <option>Other</option> </select> </label> <label class="item item-input item-stacked-label" ng-show="minor.tests.liveEarth === 'Other'"> <span class="input-label">Please Specify</span> <input type="text" placeholder="live earth other" ng-maxlength="10" data-ng-model="minor.tests.liveEarthOther" name="minorTestLiveEarthOther"> </label> 但未在iOS上显示。

我将<datalist>分配给与liveEarthOther liveEarth相同但已将<select>分配给ng-model,然后用户必须删除输入值{{1在输入它们的值之前。

我已经找到了一种组合框控制,但还没有找到一种可以正常工作的控件。

如何将其转换为指令或任何适合执行重命名的东西,而无需用户删除该值。

我想在我正在构建的应用程序中多次使用此功能。

1 个答案:

答案 0 :(得分:0)

通过重新使用ngModel,您可能会遇到过于复杂的问题。如果更改值for-comprehension,您将搞乱选择,因为除了给定值之外的任何内容都不会导致选择任何内容。但是,如果更改minor.tests.liveEarth,那么当用户填写文本输入时,您将不得不删除它。这将弄乱选择框!

我要做的是将文本输入的值记录到另一个变量。保持minor.tests.liveEarth不变,但将输入更改为

ng-show="minor.tests.liveEarth === 'Other'"

这样输入仍将被记录,但选择不会在ngModel更改时搞砸。由于<input type="text" placeholder="Fill in your other live earth" ng-maxlength="10" data-ng-model="tempVar" /> ,用户将知道他们必须填写文本框。

在你的js中,当表单按以下方式提交时,你必须创建一个验证函数:

placeholder