当前位置: 首页 > 面试题库 >

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

劳嘉实
2023-03-14
问题内容

我有以下代码的视图:

<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?


问题答案:

根据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;
});


 类似资料:
  • 问题内容: 我有一个像这样的控制器: 当我尝试使用ng-click调用upload_variant_image函数时,它仅在绑定到静态DOM时才有效(当DOM加载时),我有这样的链接: 但是此元素是在DOM加载后动态添加的,因此ng-click不起作用。 但是当我在Rails中像这样更新DOM时,它不起作用: 问题答案: 我警告您,如果您通过Angular外部方法来操纵DOM,则可能不会完全接受A

  • 问题内容: 如何使用ng-click而不是使用ui-sref的链接来更改route.state。 我已经试过了: 与 但这是行不通的。有任何想法吗? 问题答案: 查看ui-router文档Wiki。 最好的解决方案是使用。例如, 这是文档中特定功能的链接:https : //github.com/angular-ui/ui- router/wiki/Quick-Reference#stategot

  • 问题内容: 有没有之间的功能差异和? 在使用和在控制器被使用。 在HTML中,我将使用: 而在函数中,我将使用类似: 那么,是还是在之后添加一些内容?假设当前状态为。 问题答案: 和之间没有 功能上的 区别。参阅文件 激活状态 激活状态有三种主要方法: 致电。高级便利方法。 单击包含指令的链接。 导航到与状态关联的状态。 因此,这些操作最终都将执行相同的操作,正如我们在指令代码中所看到的: 它确实

  • 问题内容: 这里有角的菜鸟。我正在创建一个指令以递归显示问题树和子问题树。我正在模板中使用链接,该链接在范围内调用函数。由于某种原因,它不会调用该方法。 这是代码和小提琴http://jsfiddle.net/madhums/n9KNv/ HTML: Javascript: 任何帮助理解这一点将不胜感激。 问题答案: 您遇到范围问题。由于您在指令中使用隔离范围,因此它不再有权访问具有的控制器范围。

  • 问题内容: 我有指令 控制器: 在索引页面上,我有: 每当包含不同的html时,我的自定义服务都会返回 我想做的是每次在指令的内容中推送不同的值以对其进行编译并将其放入html并处理控制器中的click函数时。因为我是AngularJS的新手,所以一段时间以来一直在努力解决这个问题。请帮忙。 问题答案: 您不需要处理$ sce即可达到目的。 您可以将as字符串传递给指令。在指令中编译后,它将起作用

  • 问题内容: 我正在做一个文档编辑器。文档可以是Type A或TypeB。可以通过URL通过文档ID对其进行访问,但是如果文档是A或B类型,则该ID不能使它们清晰可见。 因此,我需要按id加载文档,根据其数据确定其类型,然后将其传递给TypeAController或TypeBController。 现在,使用ui-router,我有类似以下内容: 加载状态将加载文档,确定其类型,然后进入下一个状态。