2

#model#:search.js

define('search',function(){
    var searchCriteria = function () {
        var self = this;
        self.DeviceSerialNumber = ko.observable('');
        self.OrderNumber = ko.observable('');
        self.PosTranNumber = ko.observable('');
        self.EmailAddress = ko.observable('');
        self.SuspendedbarCode = ko.observable('');
        self.MobileNumber = ko.observable('');
    };

    return new searchCriteria();
});

我正在尝试通过以下代码在searchReturn.js中调用上述模型

define(function (require) {
    var searchObj = require('search')
});

当我调试代码时,searchObj 是未定义的。任何人都可以指导我重新恋爱吗?

我应该为搜索模型配置任何东西吗?

谢谢,
湿婆雷迪

4

3 回答 3

0

尝试这样改变,

    define(function(){
      var searchCriteria = function () {      
      //.....
    });
于 2013-11-08T11:24:38.960 回答
0

不确定您是否已全局加载淘汰赛,但如果没有,则必须在首次使用之前声明它:

/*globals define*/
define(function(require){
    "use strict";
    var ko = require('knockout'),
    searchCriteria = function () {
          var self = this;
          self.DeviceSerialNumber = ko.observable('');
          self.OrderNumber = ko.observable('');
          self.PosTranNumber = ko.observable('');
          self.EmailAddress = ko.observable('');
          self.SuspendedbarCode = ko.observable('');
          self.MobileNumber = ko.observable('');
      };

      return new searchCriteria();
});

第二个 AMD 模块没有返回值(可能只是复制/粘贴问题),但这也可能导致问题。不确定是否为搜索配置了路径,但如果没有,并且模块可以在同一目录中访问,那么它必须以./

/*globals define*/
define(function(require){
    "use strict";

    var searchObj = require('./search');

    return {
        searchObj : searchObj
    };

});

现场版可在: http ://dfiddle.github.io/dFiddle-2.0/#so/19857807

只是补充。如果应该多次实例化搜索模型,最好只从搜索模块返回构造函数并在需要时实例化。

搜索模块

/*globals define*/
define(function(require){
   ...

      return searchCriteria;
});

另一个模块:

define(function(require){
    "use strict";

    var searchObj = require('./search');

    return {
        searchObj : new searchObj()
    };

});
于 2013-11-08T13:16:46.057 回答
0
define(function (require) {
    return {
        searchCriteria: function () {
            var self = this;
            self.DeviceSerialNumber = ko.observable('');
            self.OrderNumber = ko.observable('');
            self.PosTranNumber = ko.observable('');
            self.EmailAddress = ko.observable('');
            self.SuspendedbarCode = ko.observable('');
            self.MobileNumber = ko.observable('');
        }
    };
});

上面的代码对我来说很好,我可以调用我的 searchCriteria 对象。

谢谢,湿婆

于 2013-11-11T06:35:00.400 回答