我正在处理的网站有一个自定义CMS,我正在使用
angularjs进行内联页面编辑.数据库存储用于生成页面的
HTML,因此我无法严格使用客户端模板和模型.
我没有使用HTML5 pushState,因此URL类似于example.com/page#/widget/1/edit或example.com/page#/widget/new,我当前的问题是当我提交表单进行编辑时一个小部件或添加一个小部件,然后我希望页面通过将HTML注入DOM并将URL更改为默认值来重新加载其内容,我正在尝试使用$location.path(‘/’).
我当前的实现有多个问题(您将在演示中看到),其中一个是在我的表单submit()回调中,更改$location.path只更改第二个表单按钮单击时的URL.我也尝试更改单击“删除”的URL,但这也不起作用.
customPage.controller('PageEditCtrl',function($scope,$http,$routeParams,$location,$route,$compile,PageState) { var widgetId = $routeParams.id || widgetCount + 1; $scope.pageState = PageState; $scope.widget = { id: widgetId,name: 'Widget ' + widgetId }; $scope.submit = function() { if ($scope.widget.id > widgetCount) widgetCount += 1; setTimeout(function() { var element = $compile(genHtml())($scope); angular.element('#page-content').html(element); $location.path('/'); },100); }; });