0

我有 index.html

以前的

<body ng-app="MainController">
     <div class="page page-base {{ pageClass }}" ng-view>
     </div>
</div>

我在 registerController 中为 $scope.errorMsg 分配了一些值,因此更改为

    <body ng-app="myApp">
     <div class="page page-base {{ pageClass }}" ng-view>
        <div ng-controller="MainController" ng-click="doClick($event)"></div>
        <div ng-controller="RegisterController"></div>
     </div>
</div>

在控制器中,当我执行 console.log 它打印值但它没有显示在 error.html 页面上。

$scope.errorMsg = data.message;
$location.path("/reg/error");

我是 Angular 的新手,如果我需要为我的问题添加更多信息,请告诉我

4

1 回答 1

1

尝试在 RegisterController 范围内进行插值:

<div ng-controller="RegisterController">{{errorMsg}}</div>

更新

对于那些新的角度来说,一个常见的混淆来源是示波器和控制器随风而去,并且在哪里放置瞬态数据并不明显。

由于角度服务是单例的,一种解决方案是实现一个服务来存储瞬态 - 在 OP 的情况下,“errorMsg” - 在视图更改中。

这是一个简单的单例服务。

app.factory('StateService', function() {
   // A singleton object to stuff transient data
   return { };
});

它很容易像这样传递给控制器​​实例

app.controller('ErrorController', ['$scope', 'StateService', function($scope, states) { 
 . . .
});

这是一个演示该概念的 plunkr,使用您的代码作为基础。

于 2017-01-04T18:19:49.047 回答