2016-12-27 67 views
1

可能有人請指出在代碼中的錯誤,AngularJS:在路由器使用ControllerAs不工作,問題與app.js

問題addstudent.html文件1個保存按鈕不起作用。如果使用$ Scope,那麼它的工作原理已經修改了使用ControllerAs的代碼,但該功能停止工作。當在調試工具的檢查甚至控制在addStudentController頁的行

(addCtrl.saveStudent =功能(學生){)

不comimg上點擊保存按鈕,什麼也沒有發生。

問題2在app.js中,當評論代碼變爲活動狀態時,應用程序完全停止工作。

問題3想知道在addStudentController.js的取消按鈕上使用window.location重定向到index.html的方式是否很好?

addStudentController.js

module.controller('addStudentController', 
     function addStudentController(){  
      addCtrl = this; 
      addCtrl.saveStudent = function(student){ 
       window.alert(student.name+' save successfully'); 
      }; 
      addCtrl.cancelStudent = function(){ 
       window.location='/index'; 
      }; 
     }  
); 

app.js

var module = angular.module('myApp',['ngRoute']) 
.config(['$routeProvider', function($routeProvider){ 
    $routeProvider  
    /*.when('/index', { 
     templateUrl: 'index.html', 
     controller: 'studentController', 
     title: 'This is index page' 
    })*/ 
    .when('/addStudent', { 
     templateUrl:'templates/addStudent.html', 
     controller:'addStudentController', 
     controllerAs: 'addCtrl' 
    }) 
    /*.otherwise({ 
     redirectTo: '/index' 
    })*/; 
}]); 

addStudent.html

<div> 
    <div> 
     <h1>New Student</h1> 
     <p> 
      <img data-ng-src="{{student.imageUrl}}" alt={{student.name}} 
       height="40px"> 
     </p> 
     <hr> 
     <form name="newStudentForm"> 
      <fieldset> 

        <label for="studentName">Student Name:</label> 
        <input id="studentName" type="text" data-ng-model="student.name" required 
        placeholder="Name of student...."> <br> 

        <label for="studentDepartment">Student Department:</label> 
        <input id="studentDepartment" type="text" 
        data-ng-model="student.department" placeholder="Name of student Department ...."> <br> 

        <label for="studentBranch">Student Branch:</label> 
        <input id="studentBranch" type="text" data-ng-model="student.branch" 
        placeholder="Name of student Branch ...."> <br> 

      </fieldset> 

      <button type="submit" data-ng-disabled="newStudentForm.$invalid" 
       data-ng-click="saveStudent(student)">Save</button> 

      <button type="button" data-ng-click="cancelStudent()"> 
       Cancel</button> 

     </form> 
     <label for="studentImage">Student Image:</label> <input 
      id="studentImage" type="text" data-ng-model="student.imageUrl" 
      placeholder="url for student image ...."> 
    </div> 
</div> 

回答

0

問題1:使用addCtrl.saveStudent(學生)在HTML

問題lem 2:你在控制檯中看到一個異常嗎?您可能沒有正確注入控制器,或者您的模板url可能是錯誤的。很難說與當前的信息。

問題3:使用位置服務:Angular location

+0

謝謝@Noppey problem1已解決 – MAX