【问题标题】:Javascript Arrays do not have functionality within Angular service when retrieved from $cookies从 $cookies 检索时,Javascript 数组在 Angular 服务中没有功能
【发布时间】:2014-12-29 15:15:26
【问题描述】:

下面的代码在控制器中运行良好。

$cookies.pinnedVidsCookie = [];
var array = $cookies.pinnedVidsCookie;
array.push({ "title": "sometitle", "embed": "somehtml" });
$cookies.pinnedVidsCookie = array;

但是,当我将它放入服务时,我收到一个错误,表明 push() 不是未定义的函数。 "TypeError: undefined is not a function"

我检查过,数组在执行时是一个对象,所以它不是未定义/空的。

我在包含“pinServices”模块的模块中包含“ngCookies”。

angular.module('pinServices', [])
    .service('pinVidModal', ['$cookies', function ($cookies) {
        $cookies.pinnedVidsCookie = [];

        var pinVid = function (title, embedHtml) {
            //pinnedVids.push({ "title": title, "embed": embedHtml });
            var array = $cookies.pinnedVidsCookie;
            array.push({ "title": title, "embed": embedHtml });
            $cookies.pinnedVidsCookie = array;
        }
 return {
            pinVid: pinVid,
        };
    }]);

。 . .

【问题讨论】:

    标签: javascript angularjs cookies service typeerror


    【解决方案1】:

    尝试控制台记录 $cookies.pinnedVidsCookie 和数组变量的类型定义。 如果这些不是数组类型,则必须先将它们转换为数组,然后才能应用 push 方法。 否则,您可以使用 $extend 方法将您的对象与其他对象合并。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 2019-03-24
      相关资源
      最近更新 更多