如何传递组件中观察到的控制器 属性
How to pass controller observed property in component
我正在开发一个应用程序,我将在控制器中观察到的 属性 传递给组件,但我得到 undefined 值。我正在使用 ember 1.6
我如何调用组件:-
{{range-slider min="0" max="100" step="1" value=currentVal}}
Component 实现是:-
App.RangeSliderComponent = Ember.Component.extend({
tagName:'',
currentValue:function(){
return this.get('value');
}.property('value'),
minValue:function(){
return this.get('min');
}.property('min'),
didInsertElement:function(){
console.log("component with currentValue="+this.get("currentValue")+" minValue="+this.get('minValue'));
}
})
currentVal 用作组件值是在控制器中观察到的 属性。每当我滑动滑块时,currentVal 都会更改,因为它与组件绑定。默认值为 50。控制器工作正常。
控制器部分是:-
currentVal:50,
currentValChanged:function(){
console.log("currentVal changed");
}.observes('currentVal'),
在组件中,我正确获得了 min 值,但没有获得 value。未定义。
如何获取组件中的属性值?
更新
我可以通过组件中的以下方法获取变量:-
1) 如果我将一个变量直接传递给具有静态值的组件,它就可以工作。
例如,在范围滑块组件中传递的 max 值。
2)如果我传递一个在控制器中定义的静态变量
例如在控制器中
dummyValue:2345,
如果我将虚拟值传递给组件,我可以在组件部分读取它。
但是如果计算 属性 属性 那么它就不起作用了。
如果您这样做 value=currentVal
,则必须访问它 this.get("value")
。如果您想使用 this.get("currentValue")
访问它,那么您需要使用该名称传递它:currentValue= currentVal
.
我希望不要听起来很愚蠢,但是,您是否尝试在 currentVal
和 }}
之间放置一个 space?它 认真地 和一些帮手一起为我工作。
像这样:
{{range-slider min="0" max="100" step="1" value=currentVal }}
真的,我需要用 ember-xselect 来做,否则它不能正常工作。
我怀疑您的控制器在控制器部分将未定义的值设置为 currentVal 属性。请查看正在运行的 twiddle..
我正在开发一个应用程序,我将在控制器中观察到的 属性 传递给组件,但我得到 undefined 值。我正在使用 ember 1.6
我如何调用组件:-
{{range-slider min="0" max="100" step="1" value=currentVal}}
Component 实现是:-
App.RangeSliderComponent = Ember.Component.extend({
tagName:'',
currentValue:function(){
return this.get('value');
}.property('value'),
minValue:function(){
return this.get('min');
}.property('min'),
didInsertElement:function(){
console.log("component with currentValue="+this.get("currentValue")+" minValue="+this.get('minValue'));
}
})
currentVal 用作组件值是在控制器中观察到的 属性。每当我滑动滑块时,currentVal 都会更改,因为它与组件绑定。默认值为 50。控制器工作正常。
控制器部分是:-
currentVal:50,
currentValChanged:function(){
console.log("currentVal changed");
}.observes('currentVal'),
在组件中,我正确获得了 min 值,但没有获得 value。未定义。
如何获取组件中的属性值?
更新
我可以通过组件中的以下方法获取变量:-
1) 如果我将一个变量直接传递给具有静态值的组件,它就可以工作。
例如,在范围滑块组件中传递的 max 值。
2)如果我传递一个在控制器中定义的静态变量
例如在控制器中
dummyValue:2345,
如果我将虚拟值传递给组件,我可以在组件部分读取它。
但是如果计算 属性 属性 那么它就不起作用了。
如果您这样做 value=currentVal
,则必须访问它 this.get("value")
。如果您想使用 this.get("currentValue")
访问它,那么您需要使用该名称传递它:currentValue= currentVal
.
我希望不要听起来很愚蠢,但是,您是否尝试在 currentVal
和 }}
之间放置一个 space?它 认真地 和一些帮手一起为我工作。
像这样:
{{range-slider min="0" max="100" step="1" value=currentVal }}
真的,我需要用 ember-xselect 来做,否则它不能正常工作。
我怀疑您的控制器在控制器部分将未定义的值设置为 currentVal 属性。请查看正在运行的 twiddle..