2017-02-01 104 views
0

所以,我是新來的角和離子。離子/角度JS控制器不識別功能

我Serives.js文件看起來像這樣:

angular.module('app.services', []) 

.factory('serviceName', function() { 
    var z = 2; 

    return { 
     doStuff: function (x) { 
      return x * z; 
     }, 
     doMoreStuff: function (y) { 
      return y * z; 
     } 
    } 
}) 

現在我想使用的功能doStuff在我的控制器之一:

.controller('weineCtrl', ['$scope', '$stateParams',function ($scope, $stateParams, serviceName) { 
var test = serviceName.doStuff(3); }]) 

每次我運行該頁面我得到一個錯誤:

TypeError: Cannot read property 'doStuff' of undefined 
at new <anonymous> (controllers.js:21) 
at Object.instantiate (ionic.bundle.js:18015) 
at $controller (ionic.bundle.js:23417) 
at Object.self.appendViewElement (ionic.bundle.js:59908) 
at Object.render (ionic.bundle.js:57901) 
at Object.init (ionic.bundle.js:57821) 
at Object.self.render (ionic.bundle.js:59767) 
at Object.self.register (ionic.bundle.js:59725) 
at updateView (ionic.bundle.js:65400) 
at ionic.bundle.js:65377 

怎麼了???

回答

4

您需要包括serviceName作爲另一個的依賴在你的控制器是這樣的:

.controller('weineCtrl', ['$scope', '$stateParams', 'serviceName', function ($scope, $stateParams, serviceName) { 
var test = serviceName.doStuff(3); }]) 
+0

你是我的英雄,謝謝! –