[英]Angular doesn't work when defining a service and factory separately
我正在嘗試編寫一個簡單的角度服務和如下所示的工廠:
的HTML:
<div ng-controller="mycontroller">
{{saycheese}}
</div>
Java腳本
var myApp = angular.module('myApp', []);
myApp.service('myservice', function() {
this.sayHello = function() {
return "from service";
};
});
myApp.factory('myfactory', function() {
return {
sayHello: function() {
return "from factory!"
}
};
});
//defining a controller over here
myapp.controller("mycontroller", ["myfactory", "myservice", function(myfactory, myservice) {
$scope.saycheese = [
myfactory.sayHello(),
myservice.sayHello()
];
}]);
但是JSFiddle
仍然只顯示{{saycheese}}
而不是對該函數進行角度映射。
鏈接到我的小提琴: http : //jsfiddle.net/PxdSP/3047/
您能指出我在這種情況下哪里出問題了嗎? 謝謝。
您的代碼中有幾個語法錯誤,檢查控制台將毫無疑問地對SO有所幫助。 這是編寫控制器( demo )的一種可能方法:
myApp.controller("mycontroller", ["$scope", "myfactory", "myservice",
function($scope, myfactory, myservice) {
$scope.saycheese = [
myfactory.sayHello(),
myservice.sayHello()
];
}]);
除了明顯的修復myapp => myApp
(變量名稱在JavaScript中區分大小寫)之外,還應將$scope
作為參數傳遞給控制器(並像使用控制器那樣使用數組化-正確的-形式作為其依賴關系提及)您才能訪問它。 否則,您將得到ReferenceError: $scope is not defined
調用控制器代碼時, ReferenceError: $scope is not defined
異常。
幾件事情:
myapp.controller(...)
應該是myApp.controller(...)
$scope
。 固定控制器:
myApp.controller("mycontroller", ["myfactory", "myservice", "$scope", function(myfactory, myservice, $scope) {
$scope.saycheese = [
myfactory.sayHello(),
myservice.sayHello()
];
}]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.