【发布时间】:2016-10-26 13:23:50
【问题描述】:
我开始创建一个单页应用程序,该应用程序从文本框中获取输入并显示到另一个页面。在第二页上,我想创建一个主页按钮,将我带到原始视图,同时将应用程序的输入框刷新为空白状态。
第一个视图
<input type="text" id="Bad" style="text-transform:uppercase" ng-model="name" />
第二个视图
<h3>Hello</h3>
<span ng-bind="name"></span></br>
<a href="#" ng-click="reload()">
<img src="Home_Icon.png" height="92" />
</a>
app .js 控制器
var myApp = angular.module('myApp', ['ngRoute']);
myApp.config(function ($routeProvider) {
$routeProvider.when('/second', {
templateUrl: 'pages/second.html',
controller: 'secondController'
});
});
控制器功能
myApp.controller('secondController', [
'$scope',
'$log',
'$routeParams',
'$window',
'nameService',
function ($scope, $log, $routeParams, nameService) {
$scope.num = $routeParams.num || 1;
$scope.name = nameService.name;
$scope.$watch('name', function () {
nameService.name = $scope.name;
});
$scope.reload = function () {
location.reload();
}
}]
);
我试过How to reload a page using Angularjs?。也是。请帮忙!。谢谢
【问题讨论】:
-
您是否只想在导航回原始视图时清除输入?
-
基本是的。我想创建多个带有回家选项的页面
-
您可以将默认值设置为角度,然后在按钮单击(ng-click)上使用 $scope.$apply() 将数据“刷新”回默认值
-
使用 location.reload() 是一种非常糟糕的做法,因为它会重新加载您的所有服务、控制器和脚本。我建议您重新加载该特定状态,而不是重新加载位置本身。即,对于您的情况,最好使用 ui.routing 附带的 $stateProvider。
标签: javascript angularjs http