如何解决我们是否可以强制控制器值更改立即手动反映到html下拉元素中,而不用在ember JS中重新加载页面?
我遇到的情况是必须输入小时和分钟作为输入。我使用了两个选择框元素来获取小时和分钟。条件是我将有一分钟的分钟数,该分钟数不能超过该分钟数。为此,我使用了inbuilt view in ember。我的程序中有两个控制器变量,一个必须在hours元素中生成选项字段,另一个则是几分钟。 observer function监听小时值的变化,并相应地在minutes元素中设置选项,以使最终的分钟数大于给定的最小分钟数。
采样小时选项:[“ 0”,“ 1”,“ 2”,.......“ 23”]
采样分钟选项:[“ 0”,“ 5”,“ 10”,“ 15”,......,“ 55”]
例如,如果最小分钟数是30分钟:
- 如果小时元素中的值为0,则分钟选项不应显示0,5,10,....,25,因为它们的值小于30分钟。
- 如果hour元素中的值大于0,则表示标准大于30分钟,因此分钟选项可以是任意值,应该显示从0到55的每个选项。
用于设置分钟数选项的控制器观察器功能:
AllMinuteOption=[["0","1","2",......."23"],updateMinuteOption: Ember.observer("HourValueSelected",function() {
var MinimumMinutes = this.get("MinimumMinutes"); //minimum minute criteria
var currentHourValueSelected= this.get("currentHourValueSelected"); //The current value in selected in hour select element
if ((currentHourValueSelected * 60) > MinimumMinutes) {
console.log("opt" + this.get("minutesoption"));
this.set("MinuteOption",this.get("AllMinuteOption"));
return;
}
var MinimumHrs = Math.floor(MinimumMinutes / 60);
var residualMinutes = MinimumMinutes - (crntEventFetchHour * 60);
var sliceIndex = Math.floor(residualMinutes / 5);
if (residualMinutes % 5 != 0) {
sliceIndex++;
}
var temp = this.get("AllMinuteOption").slice(sliceIndex);
this.set("MinuteOption",temp);
}),
此方法设置与所选小时值相对应的分钟选项,但更改不会动态更新为附近的分钟选项,但最终在分钟选项中选择了其他选项后,分钟元素中的值正在改变。有人可以告诉我如何手动更改控制器变量以使其反映在模板中吗? 预先感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。