当前位置: 首页 > 知识库问答 >
问题:

未捕获引用错误:无法处理绑定“submit:function(){return add\u list\u form\u submit}”

危文乐
2023-03-14

我真的需要帮助调试这个错误。我有一个使用KnockoutJS继承的项目。我们将不胜感激。

下面是该视图的一个片段

<form action="" method="post" class="text-muted" ko="submit: add_list_form_submit">
  <div class="form-group">
    <label class="control-label">Travel purpose</label>
    <select ko="visible: purposes().length != 0, 
         value: selected, 
         attr: {name: !is_new_purpose() ? 'travel_purpose':'' }"
       class="form-control" 
       required>
       <option style="display: none" value="">Select or add purpose</option>
       <!-- ko foreach: purposes -->
       <option ko="value: $data, text: $data"></option>
       <!-- /ko -->
         <option value="__">Add a new category</option>
    </select>
    <input ko="visible: is_new_purpose, 
        value: travel_purpose, 
        value_update: 'input', 
        attr: { name: is_new_purpose()? Every 'travel_purpose':'' }" 
      class="form-control" 
      type="text" 
      placeholder="enter new travel purpose" />
  </div>
<form>

这是Viewmodel,与前面的设置相同。

function EnterTravelInfoViewmodel() {
    var etm = this;
    // Observables
    etm.purposes    = ko.observableArray();
    etm.selected    = ko.observable('');
    etm.travel_purpose    = ko.observable('');

    // Subscriptions
    etm.selected.subscribe(function(s) {
    });
    // Computed
    etm.is_new_purpose = ko.computed(function() {
        return etm.purposes().length == 0 || etm.selected() == '__';
    });

    // Event handlers
    etm.add_list_form_submit = function() {
if ((!etm.is_new_purpose() && etm.selected() == '') || (etm.is_new_purpose() && etm.travel_purpose() == '')) {
swal({title: "Hold on", text: "Specify a purpose for this travel", type: 'info'});
     return false;
}
     return true;
};

// Init
//------------Get Travel Purposes payload------------
$.post(Me.url_prefix+'lib/bg-manage-travel.php?get_request=get-travel-purposes', {}
, function(data) {
etm.purposes( JSON.parse(data) );
});

还有其他几个视图模型是通过开关循环绑定的

$(function() {
    switch(where) {
        case 'login':
            VM = new LoginViewmodel();
            break;
        case 'manage-production-stages':
            VM = new ManageProductionStagesViewmodel();
            break;
        case 'enter-travel-info':
            VM = new EnterTravelInfoViewmodel();
            break;
    }
    ko.applyBindings(VM);
});

另外,请注意,数据绑定已被重新分配,这就是我在视图中使用“ko”的原因。

//----------Change `ko` attribs to `data-bind`-------------
$(function() {
    $('[ko]').renameAttr('ko','data-bind');
});

再一次,提前谢谢你。

共有1个答案

刁星渊
2023-03-14

视图模型未绑定,因为浏览器已缓存我的历史记录。清除浏览器缓存解决了此问题。

 类似资料:
  • 我对KnockoutJs还是新手,我在数据绑定方面遇到了问题。表在绑定时会出现未捕获的引用错误。。 我通过ajax调用调用数据,并与另一个数组进行比较,并将比较值存储在一个变量中。这些变量应该绑定表中的值和显示值。在这个绑定中,他们捕获了一个错误,未捕获的引用错误:无法处理绑定"模板:函数(){返回{Foreach:第三}}"消息:第三没有定义... 我的示例代码是: }这是我的脚本数据,我的示例

  • 我第一次与Firebase合作进行一个实践项目,我很难设置用户登录其帐户的能力。 我已成功设置注册,但到目前为止,我无法登录并检查身份验证状态是否正常工作。 我在控制台中不断收到的错误是“未捕获引用错误:未定义Firebase” 我自己做了一些研究,但我似乎找到的唯一答案是,你需要包含Firebase的脚本标签,这在这里不相关,因为我已经包含了它们,或者2.4.2版本的过时响应 有关守则如下:

  • 用我的超文本标记语言,下面的代码部分 在控制台上生成以下错误: 未捕获引用错误:未定义WEBGL 我已经导入了所有必要的js,所以问题是:如何解决这个问题?

  • 这是我的HTML代码,我试图将div中输出的内容转换成可下载的pdf文件。 我在控制台上得到这个错误: “未捕获引用错误:未定义jsPDF” 我不确定我做错了什么,我甚至在脚本标签中添加了。。。

  • 我正在使用node。js创建一个web应用程序。运行应用程序时(通过在浏览器上打开index.html或在终端上使用“npm start”命令),会出现两个错误: 未捕获引用错误:未定义进程 未捕获引用错误:未定义require 我解决了“require is not defined”错误,特别是在我的索引中加入了。html头标记指向此脚本的链接,其中定义了require函数。但是,我找不到与pr

  • 就这样,我正在用electron开发一个程序,一切都很好,就像在轮子上一样,直到,我做了我的小npm启动,像往常一样,我测试了一下我的应用程序,我发现javascript不再工作了,所以,我做了一点“Ctrl Shift I”,我在控制台中看到,我的模块都没有被导入,因为在最上面,我们有一个很大的错误:“uncaughtreferenceerror:primordials没有在”inspect“中