【问题标题】:requirejs & knockoutjs ko.computed Pass a function that returns the value of the ko.computedrequirejs & knockoutjs ko.computed 传递一个函数,返回 ko.computed 的值
【发布时间】:2013-06-01 05:56:56
【问题描述】:

我在尝试通过 requirejs 很好地使用淘汰赛时遇到了问题(从这里的帖子数量来看,其他人也是如此!)。我在这里读到的任何内容都没有遇到过这个问题。

下面是我的 require 配置:

requirejs.config({
    "baseUrl": "/js",
    "paths": {
        "Model": "App/Model",
        "Development": "App/Development",
        "Property": "App/Property",
        "codemirror": "vendor/codemirror/codemirror-2.37/lib/codemirror",
        "galleria": "vendor/galleria/galleria-1.2.9",
        "jquery": "vendor/jquery/jquery-2.0.0",
        "jquery-ui": "vendor/jquery-ui/jquery-ui-1.10.2",
        "jshint": "vendor/jshint/jshint-1.1.0",
        "knockout": "vendor/knockout/knockout-2.2.1",
        "signalr": "vendor/signalR/jquery.signalR-1.0.1"
    },
    "shim": {
        "galleria": {
            deps: ["jquery"]
        },
        "jquery-ui": {
            deps: ["jquery"]
        },
        "signalr": ["jquery"],
        "/signalr/hubs": {
            deps: ["jquery", "signalr"]
        },
        "Development/ViewModel/CreateDevelopment": {
            deps: ["signalr", "knockout"]
        },
        "knockout": {
            deps: ["jquery"],
            exports: "knockout"
        }
    }
});

所以这应该得到我所有的依赖,而且确实如此。这是要求位:

require(["Development/ViewModel/CreateDevelopment"], function (CreateDevelopment) {

    $.connection.hub.start().done(function() {
        if (CreateDevelopment !== undefined && CreateDevelopment !== null) {
            var createDevelopment = new CreateDevelopment();
            createDevelopment.init();
        }
    });
})

我可能需要引入 singalr jquery 位,但这不是我遇到问题的地方。

当我定义我的模块时,我不断收到以下错误:

Uncaught Error: Pass a function that returns the value of the ko.computed (Line 44)

这是我的模块

define(["Model/developmentType", "knockout", "signalr", "/signalr/hubs"], function (developmentType, ko)

现在,如果我使用 console.log(ko),我可以看到库中的所有内容,所以我不明白为什么我不断收到此错误。

require 获取库的顺序如下:

  • RequireJS
  • 主要 AppJs
  • jQuery
  • Jquery SignalR
  • 淘汰赛
  • 视图模型
  • 型号
  • 集线器

    未捕获的错误:传递一个返回 ko.computed 值的函数

调用堆栈:

对此的任何帮助都将受到极大的欢迎!

【问题讨论】:

标签: knockout.js requirejs


【解决方案1】:

从 Knockout 2.0 开始,依赖的 observables 被称为计算 observables。所以:

self.typeList = ko.dependentObservable();

应替换为:

self.typeList = ko.computed(function(){
   // Compute value here...
   return value;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 2015-07-30
    • 2013-04-20
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    相关资源
    最近更新 更多