首先,每当路线改变时,角度都会刷新视图。防止这种情况的唯一方法是将路由中的“reloadOnSearch”参数设置为 false。完成此操作后,您可以将查询字符串参数传递给视图,而无需重新加载视图。还有一个额外的警告是你必须明确地监听“$routeUpdate”。以下是 Angular 代码,下面是一个小提琴,可以实现在多个聊天之间切换而不刷新视图的目标。我使用 ng-show 根据传递的查询字符串参数显示适当的聊天。
angular.module('app',[]).config(function($routeProvider){
$routeProvider.when('/', {templateUrl: 'view.html', reloadOnSearch:false});
}).controller('controller', function($scope, $routeParams){
$scope.$on('$routeUpdate', function(value) {
$scope.id = $routeParams.id;
});
}).directive('chat', function(){
return{
restrict:'E',
replace:true,
scope:{},
controller: function($scope){
$scope.items = [];
$scope.submit = function(text){
$scope.items.push(text);
};
},
templateUrl:'chat.html'
}
});
http://jsfiddle.net/jwanga/u2RrU/