一尘不染

AngularJS / ui-router:$ state.go在ng-click中不起作用

angularjs

我有以下代码的视图:

<input type="button" value="New Post" ng-click="$state.go('blog.new-post')">

目标是无需使用href即可过渡到新状态。不幸的是,上面的代码不会触发。

我还尝试为此视图在控制器中包括$ state:

app.controller('blogPostsController', function($scope, $stateParams, $http, $state) ...

但是仍然没有。transictionTo也似乎不起作用。

有人对如何进行这项工作有任何想法吗?

编辑:我只能通过分配使其工作:

$scope.$state = $state;

在我的控制器内。这看起来很丑。如果没有将$ state分配给作用域,是否真的没有其他方法可以访问$ state?


阅读 259

收藏
2020-07-04

共1个答案

一尘不染

根据https://github.com/angular-ui/ui-router/wiki/Quick-Reference#note-about-
using-state-within-a-template的定义,您可以将其添加到中$rootScope,因此所有版本都可以使用范围和所有模板

angular.module("myApp").run(function ($rootScope, $state, $stateParams) {
  $rootScope.$state = $state;
  $rootScope.$stateParams = $stateParams;
});
2020-07-04