淘汰durandal这...不是一个功能

时间:2015-03-22 21:22:03

标签: javascript knockout.js durandal

我有这段代码:

define(['plugins/dialog', 'knockout', 'backend', 'durandal/app', 'datepicker', 'datepicker_ko'], function (dialog, ko, backend, app, datepicker, datepicker_ko) {
    var ApplicationForm = function(config) {
        this.config = ko.observableArray(config);
    };

    ApplicationForm.prototype.submit = function() {
        backend.setFormConfig(this.config()).then(function(response){
                dialog.close(this);
        });

    };

    ApplicationForm.show = function(config){
        return dialog.show(new ApplicationForm(config));
    };

    return ApplicationForm;
});

congig在mainfile main.js中:

requirejs.config({
    paths: {
        'text': '../lib/require/text',
        'durandal':'../lib/durandal/js',
        'plugins' : '../lib/durandal/js/plugins',
        'transitions' : '../lib/durandal/js/transitions',
        'knockout': '../lib/knockout/knockout-3.1.0',
        'validation_ko': '../lib/knockout/knockout-validation',
        'bootstrap': '../lib/bootstrap/js/bootstrap',
        'jquery': '../lib/jquery/jquery-1.9.1',
        'underscore': '../lib/underscore/underscore-min',
        'datepicker': '../lib/datepicker/bootstrap-datepicker',
        'datepicker_ko': '../lib/datepicker/datepicker_ko'
    },
    shim: {
        'bootstrap': {
            deps: ['jquery'],
            exports: 'jQuery'
       }
    }
});

我的问题是,我收到了错误:

TypeError: this.config is not a function

我在我的项目中多次这样做,并且observables工作得很好,但没有observableArrays。我错了什么?

1 个答案:

答案 0 :(得分:-1)

define(['plugins/dialog',
    'knockout', 
    'backend', 
    'durandal/app', 
    'datepicker', 
    'datepicker_ko'], function (dialog, ko, backend, app, datepicker, datepicker_ko) {
var config = ko.observableArray([]);

var submit = function(){
   var request = config();
   backend.setFormConfig(request).then(function(response){
          dialog.close(viewmodel);
   });
}

var show = function(config){
    dialog.show(viewmodel, config);
}

var activate = function(config){
  config(config);
}

var viewmodel = 
{
  config: config,
  submit: submit,
  show: show,
  activate: activate
};

return viewmodel;});