从$cookies检索时,Javascript数组在Angular service中没有功能

从$cookies检索时,Javascript数组在Angular service中没有功能,javascript,angularjs,cookies,service,typeerror,Javascript,Angularjs,Cookies,Service,Typeerror,下面的代码在控制器中运行良好 $cookies.pinnedVidsCookie = []; var array = $cookies.pinnedVidsCookie; array.push({ "title": "sometitle", "embed": "somehtml" }); $cookies.pinnedVidsCookie = array; 然而,当我把它放到服务中时,我得到一个错误,表明push()不是一个未定义的函数。“TypeError:未定义不是函数” $cookies

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

$cookies.pinnedVidsCookie = [];
var array = $cookies.pinnedVidsCookie;
array.push({ "title": "sometitle", "embed": "somehtml" });
$cookies.pinnedVidsCookie = array;
然而,当我把它放到服务中时,我得到一个错误,表明push()不是一个未定义的函数。“TypeError:未定义不是函数”

$cookies.pinnedVidsCookie = [];
var array = $cookies.pinnedVidsCookie;
array.push({ "title": "sometitle", "embed": "somehtml" });
$cookies.pinnedVidsCookie = array;
我检查了,数组在该执行点是一个对象,因此它不是未定义的/null

$cookies.pinnedVidsCookie = [];
var array = $cookies.pinnedVidsCookie;
array.push({ "title": "sometitle", "embed": "somehtml" });
$cookies.pinnedVidsCookie = array;
我的“ngCookies”包含在包含“pinServices”模块的模块中

$cookies.pinnedVidsCookie = [];
var array = $cookies.pinnedVidsCookie;
array.push({ "title": "sometitle", "embed": "somehtml" });
$cookies.pinnedVidsCookie = array;
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,
        };
    }]);
。 .
.

尝试控制台$cookies.pinnedVidsCookie和数组变量的日志类型定义。
$cookies.pinnedVidsCookie = [];
var array = $cookies.pinnedVidsCookie;
array.push({ "title": "sometitle", "embed": "somehtml" });
$cookies.pinnedVidsCookie = array;
如果这些不是数组类型,则必须首先将它们转换为数组,然后才能应用push方法。 否则,您可以使用$extend方法将您的对象与其他对象合并

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