作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这应该很容易,但我想不通。我正在创建一个行为有点像三态多选的 View ,核心组件是 View 上的一个属性,它列出了每个选项及其状态:
TriState = Ember.View.extend({
...
childView: TristateItem,
selectionStates: {}
});
TristateItem = Ember.View.extend({
...
selectedState: function() {
var value = this.get('value');
var states = this.get('parentView.selectionStates');
var state = states[value];
if (Ember.isNone(state))
return 0;
return state;
}.property('value', 'parentView.selectionStates'),
click: function(event) {
var states = this.get('parentView.selectionStates');
var value = this.get('value');
var newState = states[value];
if (Ember.isNone(newState) || newState == 0)
newState = 1;
else if (newState == 1)
newState = -1;
else
newState = 0;
states[value] = newState;
event.stopPropagation();
}
所以在几次点击之后,selectionStates
的值可能是
{0: 1, // value "0" is selected with state "1"
3: -1, // value "3" is selected with state "-1"
4: 0} // value "4" is not selected
这很好用,但是 TristateItem.selectedState
的值没有改变。我认为这是因为不可能观察到 javascript 对象,但我在 Ember 中找不到任何可观察到的等效对象。我该怎么做?
最佳答案
由于您正在设置属性,您可以只使用 notifyPropertyChange 通知其他计算属性父对象以某种方式变脏。
this.notifyPropertyChange('parentView.selectionStates');
关于ember.js - Ember 可观测 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25660072/
我是一名优秀的程序员,十分优秀!