.factory无法在Visual Studio的Cordova中工作

时间:2016-05-16 20:27:30

标签: angularjs visual-studio cordova

我正在尝试在Apache Cordova中运行我的示例Angular代码,但似乎在独立的Angular中工作,在使用Apache Cordova时在Visual Studio中不起作用。

该方法取自Pluralight的Scott Allen的AngularJS教程。我在'独立'角度上使用它,它起作用:http://plnkr.co/edit/P12BG2eDaCR7PsNzGGFV。但为什么不在科尔多瓦?

我有两个文件:

(function () {

    var req = function ($http) {

        var getTest = function (username) {
            return $http.get("https://api.github.com/users/" + username)
                        .then(function (response) {
                            return response.data;
                        });
        };
        return {
            getTest: getTest
        };
    };

    var module = angular.module("starter.controllers");
    module.factory("req", req);

}());

angular.module('starter.controllers', [])

.controller('BrowseCtrl', function ($scope, $stateParams, req) {

    var myTest = req.getTest("test");

});

不幸的是我最终得到了

  

错误:[$ injector:unpr]未知提供者:reqProvider< - req< -   BrowseCtrl

我发现的与此错误相关的所有问题都与通过添加“[]”来重新模块化模块有关,但这不是这种情况。

2 个答案:

答案 0 :(得分:0)

首先学习AngularJs然后使用Cordova

function init(){
    var canvas = document.getElementById("easel"),
    SIZE = 250,
    centerX = canvas.width/2,
    centerY = canvas.height/2;

////////////////////////////////////
///////// Rainbow Arc /////////////
//////////////////////////////////  
    var newStroke = new createjs.Shape();
    //newStroke.graphics.beginStroke("#000");
    newStroke.graphics.beginLinearGradientStroke(["#ff0000","#ff6600","#ffff00","#009933","#0033cc","#4b0082","#551a8b"], [0,.14,.28,.42,.56,.70,.84,.98], 190,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
    newStroke.graphics.setStrokeStyle(20, 1, 1);
    newStroke.graphics.arc(100,100,50, 0 ,180*(Math.PI/180), true);

要在控制器之间建立连接,您必须使用服务。 有很多关于AngularJs的免费教程。 祝你好运:)

答案 1 :(得分:0)

好的......我的方法很好,我只是忘了在项目的index.html中包含req.js文件

(...)
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
<script src="js/req.js"></script>
(...)