0
我有一點SPA使用角度。這個概念很簡單,登錄後,$ routeProvider重定向到我有一個homeController指定的主頁。 這是從由NG-視圖,而導航至「/家」渲染我家的觀點:指令無法從服務檢索數據
<my-directive datas=getData()></my-directive>
<ul>
<li ng-repeat="data in datas"> {{data.title}} {{data.content}} </li>
</ul>
我的指令被寫爲:
angular.module('app').directive('myDirective', ['myService', function (myService) {
return {
restrict: "E",
scope: {
data: '='
},
templateUrl: "partials/my-directive.html",
controller: function ($scope) {
$scope.getDatas = function()
{
myService.retData();
}
}
};
}]);
家庭控制器是:
angular.module('app').controller('homeController', homeController);
homeController.$inject = ['myService', '$scope'];
function homeController(myService, $scope) {
var vm = this;
vm.data = [];
initController();
function initController() {
vm.data = myService.retData();
}
}
,最後我的服務就是
angular.module('app').service('myService', myService);
function myService() {
var data = [
{ id: 1, title: 'Albert Einstein', content: 'Random Content' }
];
return {
retData: function() {
return data;
},
addData: function (title, content) {
var currentIndex = data.length + 1;
data.push({
id: currentIndex,
title: title,
content: content
});
}
};
}
現在我提到了一切,問題來了。該指令無法從服務中檢索數據。實際上,當我在VS2013中運行項目時,myDirective.js甚至沒有加載。我在主HTML頁面中包含了所有服務,指令,控制器等。 是什麼導致了這個問題? 它與指令中隔離的範圍有關嗎? 在控制器,指令和服務之間共享數據的更好方法是什麼? 我可能在重寫所有代碼時犯了一些愚蠢的錯誤。請指出它們,但請記住我的實際問題以及可能導致此錯誤的原因。
不起作用。我希望指令能夠訪問服務中的數據。隔離範圍沒有任何區別 – dsg
@dsg - 只要看到我的OR回答,它就會起作用。 – JiLaBaJi