例如,
route_one
和route_two
。 route_one
中,我有一个打开jquery ui对话框的链接。在对话框里面,我可以
将某些值推送到添加值列表所在的范围
使用ng-repeat
显示。以下是问题,我已在范围中添加了一些值,然后转到route_two
并再次返回route one
。此时,范围应为空,但仍保留较旧的值。
我已经创建了plunkr供您参考。
http://plnkr.co/edit/xVtiYBwoM6h8SJpBIUh9?p=preview
复制问题的步骤,
show dialog
Goto Rotue Two
Back
我已尝试$apply
和$compile
,但效果并不理想。
提前致谢。
答案 0 :(得分:0)
问题在于back()
- 使用window.history.back();
的方法。
替换
<a href="javascript:void(0);" ng-click="back();">Back</a>
与
<a href="#!/route_one">Goto Route One</a>
答案 1 :(得分:0)
Phylax指出它绝对正确。您可以使用标签并给予href,或者您也可以使用
$ location.path(&#39; / route_one&#39;),如果你想使用角度路由
答案 2 :(得分:0)
知道了!这很简单,我必须在关闭后销毁对话框。
查看更新的plunkr
http://plnkr.co/edit/Y8yVyp11h8FmKXQxcKXx?p=preview
var route_one = angular.module('routeOne',[]);
route_one.controller('route_one_controller', ['$scope',
function($scope){
$scope.values = [];
$scope.add_values = function(){
if($scope.new_value.length <= 0){ return false; }
$scope.values.push({name: $scope.new_value});
$scope.new_value = '';
$('#dialog').dialog('close');
};
$scope.show_dialog = function(){
$('#dialog').dialog({
height: 'auto',
width: 370,
resizable: false,
autoOpen: false,
close: function(){
$(this).dialog('destroy');
}
});
$('#dialog').dialog('open');
};
}
]);