角度值提供程序无法正常工作

时间:2016-12-13 16:13:48

标签: angularjs code-injection inject provider

我将值提供程序注入到我的控制器中并获得了一个对象,但是当我尝试使用.toString()String()或任何其他方法读取该对象时,我只能在浏览器或终端上获取[Object object]。我错过了什么吗?



(function () {
    angular
        .module("myApp", [
            'ngRoute'
        ]);
})();

(function () {
    angular.module("myApp").constant('myValue', 3)
})();

(function () {
    angular
        .module("myApp")
        .controller('AllCtrl', ['myValue', setHome]);

    function setHome(myValue) {

        console.log("Value: " + myValue);

    }

})();




1 个答案:

答案 0 :(得分:1)

当您从模板引擎(如Razor或ejs)传递对象时,需要使用对象的原始格式。

例如,在Razor中,它是.value("myValue", @Html.Raw([JSON serialized model]))

在ejs中,它将是.value("myValue", <%- [JSON serialized object] %>)

// *some .js file*
(function () {
    angular
        .module("myApp", [
            'ngRoute'
        ]);
})();

// *in your .ejs file*
(function () {
    // for ejs
    angular.module("myApp").constant('myValue', <%- jsonObject %>);
    // for Razor
    angular.module("myApp").constant('myValue', @Html.Raw(jsonObject));
})();

// *in another .js file*
(function () {
    angular
        .module("myApp")
        .controller('AllCtrl', ['myValue', setHome]);

    function setHome(myValue) {

        console.log("Value: " + myValue);

    }

})();