如果按下后退按钮,Angularjs不会加载控制器

时间:2015-05-07 06:51:16

标签: javascript angularjs angularjs-routing

我是AngularJS的新手。

我有2个观点,第一个是客户,另一个是城市。客户视图包含一些基本字段,用于添加有关客户的信息,包括添加新城市的按钮。

如果我按“添加新城市”按钮,则会呈现添加新城市的视图。在此之后,当我返回客户视图时,之前输入的所有信息都将丢失。

如何保留这些信息?

4 个答案:

答案 0 :(得分:1)

使用ng-show显示城市视图,并在添加城市后使用ng-hide隐藏它。

如果您正在寻找州维护,请实施$route

答案 1 :(得分:1)

原因是您在具有相同父控制器的页面之间按下按钮。为页面添加不同的控制器将解决您的问题。

答案 2 :(得分:1)

当您访问视图时,angular再次实例化控制器,因此如果您希望数据在应用程序中保持持久性,您应该使用服务,并将数据存储在那里。 因此,当实例化控制器时,控制器将从服务加载数据。

答案 3 :(得分:0)

您可以在表单后面添加客户信息。 Evertyhing在同一个模板和同一个控制器中完成,因此没有路由切换。

请注意,当您填写字段时,city模型会立即更新。如果您不想这样做,可以在范围上实施saveCity方法,将城市模型写入另一个模型并通过ng-click="saveCity()调用。

<div ng-hide="citySaved">    
  <input type="text" ng-model="city" />
  <button type="button" ng-click="citySaved = true">Save city</button>
</div>