2016-03-16 37 views
1

我試圖重定向到一個不同的路線,當我使用angularjs提交表單,我得到那個說未定義的對象重定向使用VM

無法讀取屬性「走」的錯誤angularjs

下面是我的表單代碼

<div class="col-sm-4 col-sm-push-4 margin-top-30"> 
<form ng-controller="LogonController" data-ng-submit="vm.setDjName()" name="logonForm" novalidate> 
<div class="form-group"> 
<input type="text" name="dj-name" data-ng-model="vm.djName" placeholder="Your DJ Name" class="form-control"> 
</div> 
<button class="btn btn-primary btn-block" data-ng-click="vm.setDjName()" type="button">Login</button> 
</form> 
</div> 

,這裏是我的控制器

(function() { 
'use strict'; 
angular 
.module('app.controllers') 
.controller('LogonController', LogonController); 

LogonController.$inject = []; 

function LogonController ($state) { 
var vm = this; 
vm.setDjName = function() { 
$state.go('/video'); 
} 
} 

})(); 

我將如何重構代碼,使重定向工作?

+0

$狀態是從UI的路由器服務,但好像你注入它不會出現ui路由器在你的模塊 – jbrown

回答

3

我認爲你必須注入$state服務:

LogonController.$inject = ['$state']; 

// or 

angular 
    .module('app.controllers') 
    .controller('LogonController', ['$state', LogonController]); 

看看angular dependency injection documentation

+0

你簡直是最好的。謝謝。 – jaahvicky