Knockout.js 读取'内的绑定值;初始';和';更新';

Knockout.js 读取'内的绑定值;初始';和';更新';,knockout.js,Knockout.js,在绑定中使用时,我可以很容易地获得绑定的值“在敲除尝试解析绑定值之前与绑定值关联的语法” ko.bindingHandlers.uniqueName.preprocess = function(val) { return val || 'true'; } 如何在自定义绑定的“init”或“update”部分中获取此值 ko.bindingHandlers.myBinding={ 预处理:函数(val){ //在这里,我可以读取绑定的文本值,即“myObservale”作为文本 控制台

在绑定中使用时,我可以很容易地获得绑定的值“在敲除尝试解析绑定值之前与绑定值关联的语法”

ko.bindingHandlers.uniqueName.preprocess = function(val) {
    return val || 'true';
}
如何在自定义绑定的“init”或“update”部分中获取此值

ko.bindingHandlers.myBinding={
预处理:函数(val){
//在这里,我可以读取绑定的文本值,即“myObservale”作为文本
控制台日志(val);
返回val;
},
init:函数(元素、valueAccessor、allBindings、viewModel、bindingContext){
//我如何在这里读取绑定的文本值?即“myObservale”作为文本?
ko.applyBindingsToNode(元素{
文本:valueAccessor()
});
},
更新:函数(元素、valueAccessor、allBindings、viewModel、bindingContext){}
};
var vm={
myObservable:ko.observable('这是可观测值')
};
ko.应用绑定(vm)

我不确定您试图在这里实现什么,但是如果您希望在绑定中使用字符串
“myObservable”
,则应该在绑定中传入一个字符串

<div data-bind="myBinding: 'myObservable'"></div>
您的
init()
update()
函数可以只使用该值,而不必担心名称

init: function (element, valueAccessor) {
    var value = valueAccessor(); // the value of myObservable
    // ...
}

您可以在init
ko.unwarp(valueAccessor())
中这样做来读取当前绑定值。这就是你要找的吗?样本在这里@supercol抱歉,我不清楚。在你的例子中,我想读“name”。如“预处理”文档中所述,如果我的绑定是myBinding:1+1,则关联的值是字符串形式的“1+1”。感谢对从
preprocess()
函数返回的字符串进行求值,以获取要在绑定处理程序中使用的值。从值访问器中获取值。@JeffMercado,我已经更新了问题。我想在“init”中读取的正是从预处理返回的字符串。不是值访问器的值。谢谢,我想在元素中添加一个自定义id,并使用可观察对象的名称。我不想使用“attr:{'id':'myprefix_'+id}”绑定,而是想在自定义绑定中应用此id绑定,以消除视图中的混乱。有一种更好的方法可以使用
preprocess()
函数来完成,而不必更改绑定处理程序来处理可观察对象的名称。我会更新,告诉你可以做什么。
preprocess: function (value, name, addBinding) {
    addBinding('attr', '{ "id": "myprefix_' + value + '" }');
    return value; // use the original expression in your binding
},
init: function (element, valueAccessor) {
    var value = valueAccessor(); // the value of myObservable
    // ...
}