【问题标题】:$state are not workig angularjs$state 不工作
【发布时间】:2026-02-20 03:10:01
【问题描述】:

我有 2 页,我想将一个变量从第 1 页传递到第 2 页。

page1.html

<ion-view ion-title="Home">
<ion-content>
    <label class="item item-input">
    <input type="text" placeholder="Enter a value" ng-model="value">
    </label>

    <button class="button button-block button-positive" ng-click="me(value)" >
    Go to List
    </button>

</ion-content>
</ion-view>

这是 controller ,我使用 $state 转到第 2 页,我使用 $rootscope 可以使用 page2Controller 中的值

angular.module('starter.controllers', [])
.controller('page1Ctrl', function($rootScope ,$state ) {

    $rootScope.me = function(value)
    {
        $rootScope.value= value;
        $state.go('page2');
    };

});

问题是,当我单击第 1 页中的按钮时 它不会带我到第 2 页 哪里错了

这是状态码

.config(function($stateProvider, $urlRouterProvider){
$stateProvider  
.state('page1', {
    url: '/page1',
    templateUrl: 'templates/page1.html',    controller: 'page1Ctrl'})   

.state('page2', {
    url: '/page2',  
    templateUrl: 'templates/page2.html',    controller: 'page2Ctrl'})

$urlRouterProvider.otherwise('/page1');})

【问题讨论】:

  • $state 定义的代码在哪里?
  • 不要在 cmets 中粘贴代码;它无法轻松格式化或读取。你应该edit你的问题。
  • 我做到了,谢谢
  • 您的控制台有错误吗?

标签: angularjs ionic-framework state rootscope angularjs-rootscope


【解决方案1】:

你没有添加依赖

angular.module('starter.controllers', ['ui.router'])
.controller('page1Ctrl', function($rootScope ,$state ) {

    $rootScope.me = function(value)
    {
        $rootScope.value= value;
        $state.go('page2');
    };
});

并在您的 html 文件中引用 js 文件。

如果是 ionic 框架,我建议您在此 link 中使用 ion-nav-view,这将在更大程度上减少您的工作量,其中您的模块依赖于 ionic,如下所示

angular.module('starter', ['ionic'])

【讨论】:

  • 可能 OP 有一个单独的主模块(猜想它被称为“starter”),它确实包含ui.router。这仍然是一个很好的建议,因为模块应该是独立的并包含所有必需的依赖项
  • 是的,但没有在代码中的什么地方,存在对 ionic 的依赖。谢谢菲尔。如果我错了,请纠正我
  • 视情况而定,OP 没有显示该 config 函数的模块声明。您很可能是正确的,但在 OP 回来并添加更多信息之前无法判断
  • 是的。完全正确。