我有一個標題,它對於所有頁面都是通用的。所以,我把它包含在我的索引頁面中。angular js:無法將控制器的值傳遞給包含頁面的html
的index.html
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script src="assets/lib/angular.js"></script>
<script src="assets/lib/angular-route.js"></script>
<script src="headerController.js"></script>
<script src="HomeController.js"></script>
<script src="app.js"></script>
</head>
<body>
<div class="header" ng-include="'header.html'"></div>
<div class="main" ng-view></div>
</body>
</html>
了header.html
<ul>
<li>{{vm.myName}}"></li>
</ul>
我app.js文件看起來是這樣的。
(function() {
angular.module('myApp', [
'ngRoute',
'myApp.header',
'myApp.home',
])
.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/home', {
controller: 'HomeController',
templateUrl: 'homeView.html',
controllerAs: 'vm'
})
.otherwise({
redirectTo: '/home'
});
}]);
})();
我不包括家庭控制器或查看,因爲他們現在不重要。我正在試圖做的是,從headerController.js
的值傳遞給它的觀點header.html
正如你所看到的,有我在header.html中
在另一邊只有一個變量,headerController.js
與通信後端服務並獲取此結果。而且,我敢肯定,數據正在由服務返回的,我可以看到它在控制檯,它看起來像這樣:
{"myName":"Amelia Earheart"}
,這裏是我的headerController.js
(function() {
angular
.module('myApp.header', [])
.factory('myCommonService', function($http) {
var baseUrl = 'api/';
return {
getName:function() {
return $http.get(baseUrl + 'getName');
}
};
})
.controller('CommonController', function($scope, $routeParams, myCommonService) {
var vm = this;
myCommonService.getName().success(function(data) {
vm.myName = data.myName;
});
});
})();
燦有人告訴我爲什麼我沒有在HTML視圖中獲得價值?
儘量把NG-控制器=「CommonController」在header.html中UL標籤。因爲我認爲它沒有獲得訪問權限也必須把vm放在$ scope中,否則vm不能訪問。 – Neha