2016-04-03 78 views
0

对于AngularJS我几乎是新手。事实上,这是我的第一天。我在这里要做的是从我制作的控制器获取数据并在视图中显示它。但我不知道为什么,这不是简单的工作。无法从控制器中获取Angular.js中的数据

我的资料是学生名单。我所要做的只是按列表顺序显示学生列表,并根据在文本框中输入的姓名过滤列表。

我的代码非常简单:

<!DOCTYPE html> 
<html ng-app> 

    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script> 
    </head> 

    <body> 
    <h1>Hello!</h1> 

     Student Name: 
    <br /> 
     <input type="text" ng-model="sname" /> {{ sname }} 
    <div id="mvvm_communication" class="container" data-ng-controller="simpleController"> 

     <ul> 
     <li ng-repeat="stud in students | filter:sname | orderBy:'firstname'" >{{stud.firstname | lowercase }}, {{stud.lastname| uppercase }}</li> 
     </ul> 

    </div> 

    <script> 
     function simpleController($scope) 
     { 
     $scope.students=[ 
       {firstname:'Jordan',lastname:'Rains'}, 
       {firstname:'Michael',lastname:'Jordan'}, 
       {firstname:'John',lastname:'Doe'}, 
       {firstname:'John',lastname:'Smith'}, 
       {firstname:'Simcha',lastname:'Michelle'}, 
       {firstname:'Sydney',lastname:'Rivers'}, 
       {firstname:'Summer',lastname:'Rose'}, 
       {firstname:'Georgia',lastname:'Schubert'}, 
       {firstname:'Rosalie',lastname:'Fayadh'} 
       ]; 

     }  
    </script>  
    </body> 
</html> 

这里有一个fiddle

回答

2

您需要注册您的控制器!

var myApp = angular.module('myApp',[]); 

myApp.controller('simpleController', ['$scope', simpleController]); 

然后您还需要将名称放入ng-app

<html ng-app="myApp"> 
+0

谢谢。我不知道这件事 –

1

我已经更新您的JSFiddle

HTML:

<div ng-app="app"> 
    <div ng-controller="simpleController"> 
    <h1>Hello Student!</h1> Student Name:<br/> 
    <input type="text" ng-model="sname" /> {{ sname }} 
    <div id="mvvm_communication" class="container"> 
     <ul> 
     <li ng-repeat="stud in students | filter:sname | orderBy:'firstname'" >{{stud.firstname | lowercase }}, {{stud.lastname| uppercase }}</li> 
     </ul> 
    </div> 
    </div> 
</div> 

角:

var app = angular.module('app', []); 


app.controller('simpleController', function($scope) { 

     $scope.students=[ 
       {firstname:'Jordan',lastname:'Rains'}, 
       {firstname:'Michael',lastname:'Jordan'}, 
       {firstname:'John',lastname:'Doe'}, 
       {firstname:'John',lastname:'Smith'}, 
       {firstname:'Simcha',lastname:'Michelle'}, 
       {firstname:'Sydney',lastname:'Rivers'}, 
       {firstname:'Summer',lastname:'Rose'}, 
       {firstname:'Georgia',lastname:'Schubert'}, 
       {firstname:'Rosalie',lastname:'Fayadh'} 
       ]; 
}); 
1

您需要定义一个角模块:

 angular.module('app', []).controller('simpleController', simpleController); 

请参阅jsFiddle

相关问题