我試圖運行一個函數,如果有人點擊提交按鈕或者在routeParams中有一個值(如果用戶點擊頁面,param已經填寫了。)我想要一個函數跑步。我有一個大腦放屁,似乎無法得到這個工作!
myApp.config([ '$routeProvider', function($routeProvider) {
$routeProvider.when('/:params?', {
templateUrl: 'myTemplate',
controller : 'myController'
}).otherwise({
redirectTo : '/'
});
} ]);
myApp.controller('ipCntrl', function($scope,$log,$http,$q,$routeParams, $location) {
$scope.runReport = function() {
$location.search({'ip': $routeParams['ip']})
}
});
myApp.controller('myController', function($scope,$log,$http,$q,$routeParams, $location) {
if ($routeParams['ip'])
{
$scope.ip = $routeParams['ip'];
runMyFunction();
}
<div ng-controller="ipCntrl">
<form ng-submit="runReport()">
<input class="form-control" ng-model="ip">
</form>
<div ng-view ></div>
</div>
<script type="text/ng-template" id="myTemplate">
HI!
</script>
現在的問題是什麼?即使沒有線路參數,我猜猜它的運行時間? – 2015-03-30 20:56:49
我在路由器中看不到任何'ip'參數 – 2015-03-30 20:56:52
在控制器的函數中使用$ rootScope。$ on('$ stateChangeStart', function(event,toState,toParams,fromState,fromParams){...})攔截狀態轉換。 https://github.com/angular-ui/ui-router/wiki#state-change-events – 2015-03-30 21:30:27