Knockout.js 敲除自定义绑定-在JSFIDLE中工作,但在Durandal中不工作
绝对喜欢杜兰达尔的建筑/清晰。但是在让durandal 2.0.1识别任何定制的敲除绑定时遇到了麻烦 我的示例视图包含:Knockout.js 敲除自定义绑定-在JSFIDLE中工作,但在Durandal中不工作,knockout.js,durandal,durandal-2.0,Knockout.js,Durandal,Durandal 2.0,绝对喜欢杜兰达尔的建筑/清晰。但是在让durandal 2.0.1识别任何定制的敲除绑定时遇到了麻烦 我的示例视图包含: <div data-bind="test: {}" /> define([ 'jquery', 'knockout'], function ($, ko) { ko.bindingHandlers.test = { init: function(element, valueAccessor, allBindingsAccessor) {
<div data-bind="test: {}" />
define([ 'jquery', 'knockout'],
function ($, ko) {
ko.bindingHandlers.test = {
init: function(element, valueAccessor, allBindingsAccessor) {alert(0);},
update: function(element, valueAccessor, allBindingsAccessor) {alert(1);}
}
var model = function(){}
return new model();
});
这是从主目录中需要的:
意见:
Chrome的流量显示正在加载appBindings.js。
加载appBindings.js时,可以在其中设置断点。
但无论我尝试什么,init/update都不会被调用。
这种结合在durandal之外起作用
我还尝试了其他各种加载绑定定义的方法:
主要使用包含绑定定义的非AMD文件的define+shim。
使用脚本标记直接从index.html加载包含绑定定义的非AMD文件
使其成为视图的依赖项,而不是主视图。
有人对正确的方法有什么建议吗
谢谢。所以appBindings.js已加载,但您能否确认它在ko之后和运行ko之前已加载。applyBindings?Bonsoir!对appBidings.js在ko之后和ko.applyBindings之前加载。。。该问题原来是由先前失败的页面绑定引起的。我只是没有寻找,认为这只是必须的自定义绑定…发生了!很好的法语技能:
requirejs.config({
paths: {
...
'durandal':'../lib/durandal/js',
'jquery': '../lib/jquery/jquery-1.9.1',
'knockout': '../lib/knockout/js/knockout-3.1.0',
'bootstrap': '../lib/bootstrap/js/bootstrap',
...
'bindings': 'bindings/appBindings'
},
shim: {
'bootstrap': ['jquery'],
//'ko-binding-test': ['jquery','knockout'],
}
});
define(['libs/core','durandal/system', 'durandal/app',
'durandal/viewLocator','services/resourceService','bindings'],
function (core, system, app, viewLocator, resourceService, bindings) {
//...
});