【问题标题】:knockout push item to non-existing observableArray淘汰推送项目到不存在的 observableArray
【发布时间】:2017-06-09 11:52:03
【问题描述】:

我试图从视图模型中动态地将项目推送到 observableArray。 ajax 正确返回数据。

html

<li class="liTagulTagsChild" data-bind="click:$root.GetEmissions">/li>

javascript:

       var TagDetail = function (di_titre, di_diffusion) {
            this.di_titre = ko.observable(di_titre);
            this.di_diffusion = ko.observable(di_diffusion);               
        }

        var testA = [];
        this.test = ko.observableArray(testA);

        this.GetEmissions = function (c, event) {
            var element = event.target;
            var tag_id = element.getAttribute('tag_id');

            $.AjaxAntiforgery({
                url: 'Emission/GetDetailsByTagID/',
                data: {
                    tag_id: tag_id
                },
                success: function (result) {              
                        for (var i = 0; i < result.length; i++) {
                        var tD = new TagDetail(result[i].DI_TITRE, result[i].DI_DIFFUSION);
                        this.test.push(tD);
                    }

                }
            });
        }

问题:在 GetEmissions 函数中,我无法将项目推送到 this.test,因为 this.test 为空(未定义)。

换句话说,

 this.test.push(tD);

失败。 (空引用或未定义) 任何人的解决方案?

【问题讨论】:

    标签: arrays knockout.js push


    【解决方案1】:

    在 Javascript 中,“this”并不意味着您认为的意思。查看How to access the correct `this` context inside a callback?

    【讨论】:

      猜你喜欢
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多