我正在嘗試使用角度js創建SPA。這裏是我的jsp頁面代碼:
<body class = "image1" ng-app = "myApp" ng-controller = "TasksController">
<div class="ng-view"></div>
</body>
<script type = "text/javascript">
var mmyApp = angular.module('myApp',['angularUtils.directives.dirPagination','ngRoute']).controller('TasksController', TasksController);
function TasksController($scope, $http, $location) {
$scope.searchString = null;
$scope.shopping = {};
var url = "/Online_Shopping/dispatcher/shopping/123";
$http.get(url).then(function (response) {
$scope.shoppings = response.data;
}, function (error) {
throw error;
});
$scope.selected = "";
$scope.test = "hello";
$scope.setSelected = function(shopping) {
$scope.selected = shopping;
console.log($scope.selected);
$location.path("/item");
};
$scope.shoppingChanged = function()
{
var url = "/Online_Shopping/dispatcher/shopping/" + $scope.shopping;
$http.get(url).then(function (response) {
$scope.shoppings = response.data;
}, function (error) {
throw error;
});
};
}
mmyApp.config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl : '/Online_Shopping/shoppingtable.jsp',
controller : 'TasksController'
})
.when('/item', {
templateUrl : '/Online_Shopping/item.jsp',
controller : 'TasksController'
})
});
</script>
控制檯打印出正確的信息$scope.selected
,但是當我嘗試從我的視圖模板訪問它,什麼也不顯示。
這裏是我的視圖模板,item.jsp - 它爲{{test}}
而不是{{selected}}
:
<h1>$scope.test is equal to {{test}}</h1>
<h2>$scope.selected is equal to {{selected}}</h2>
編輯:我初始化$在我的代碼scope.selected的評論說,但我在視圖模板中仍然沒有從$ scope.selected中獲取任何值。看起來,當我使用$ location重定向到/ items時,調用控制器功能。當我切換視圖時,有什麼辦法可以防止控制器重新召回?
'$ scope.selected'在方法中,意味着它不被啓動。你已經嘗試在方法之前放置'$ scope.selected =「」'。看看它是否有效。 – Smit
您是否正在通過任何事件調用'$ scope.setSelected'並正確傳遞購物數據,嘗試在函數中傳遞靜態值。 –
你可以發表小提琴嗎? –