Knockout.js 敲除自定义绑定-在JSFIDLE中工作,但在Durandal中不工作

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) {

绝对喜欢杜兰达尔的建筑/清晰。但是在让durandal 2.0.1识别任何定制的敲除绑定时遇到了麻烦

我的示例视图包含:

<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) {
    //...
});