相关疑难解决方法(0)

angularjs $ location.path仅在第二次单击时更新URL

我正在处理的网站有一个自定义CMS,我正在使用angularjs进行内联页面编辑.数据库存储用于生成页面的HTML,因此我无法严格使用客户端模板和模型.

我没有使用HTML5 pushState,因此URL类似于example.com/page#/widget/1/editexample.com/page#/widget/new,我当前的问题是当我提交表单进行编辑时一个小部件或添加一个小部件,然后我希望页面通过将HTML注入DOM并将URL更改为默认值来重新加载其内容,我正在尝试使用它$location.path('/').

我当前的实现有多个问题(您将在演示中看到),其中一个是在我的表单submit()回调中,更改$location.path只更改第二个表单按钮单击时的URL.我也尝试更改单击"删除"的URL,但这也不起作用.

http://jsfiddle.net/sZrer/1

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);
    };
  });
Run Code Online (Sandbox Code Playgroud)

angularjs

4
推荐指数
1
解决办法
3211
查看次数

标签 统计

angularjs ×1