2015-05-20 33 views
3

使用knockoutjs;我有一個自定義組件,它在用作組件綁定時起作用,但在用作自定義元素時失敗。敲除組件w /自定義元素與組件綁定不相似

見小提琴手在這裏:http://jsfiddle.net/fmgbfthq/4/

爲什麼它的工作使用組件綁定時,但預期在使用不作爲自定義元素?它不應該以同樣的方式工作嗎?

<!-- params.loads is coming in as a function --> 
<metric params="value: loads()"></metric> 

<!-- params.loads is coming in as a value --> 
<div data-bind="component: { 
     name: 'metric', 
     params: { 
       value: loads()     
     } 
    }"></div> 

回答

1

的問題是,你跟上ko.observable()重新包裝一下你的價值,而 params.value已經是observable

試試這個:

viewModel: function(params) { 
    this.value = params.value; 
    this.format = params.format; 
}, 

Fiddle

+0

有道理,但這並不與 '靜態' 值<度量PARAMS = 「值:100」>工作 – horte

+0

即便如此,爲什麼自定義元素的處理方式與組件綁定不同? – horte

+0

請參閱http://knockoutjs.com/documentation/component-custom-elements.html#advanced-accessing-raw-parameters解釋 – haim770