이 글에서는 AngularJS에서 데이터 소스를 얻는 세 가지 방법을 주로 소개합니다. 필요하신 분들은 참고하시면 됩니다
AngularJS에서는 $rootScope에서 데이터 소스를 얻거나 서비스에서 데이터를 얻는 로직을 캡슐화할 수 있습니다. 그런 다음 app.run 함수나 컨트롤러에 삽입합니다. 이 기사에서는 데이터를 얻는 여러 가지 방법을 정리합니다.
■ 데이터 소스는 $rootScope에 배치됩니다.
var app = angular.module("app",[]); app.run(function($rootScope){ $rootScope.todos = [ {item:"",done:true}, {item:"",done:false} ]; }) <p ng-repeat="todo in todos"> {{todo.item}} </p> <form> <input type="text" ng-model="newTodo" /> <input type="submit" ng-click=""todos.push({item:newTodo, done:false}) /> </form>
위에서 $rootScope의 필드에 데이터 소스를 배치하면 쉽게 다시 작성할 수 있습니다.
■ 데이터 소스를 서비스에 배치하고 servie를 실행 함수에 삽입합니다.
app.service("TodoService", function(){ this.todos = [ {item:"",done:true}, {item:"",done:false} ]; }) app.run(function($rootScope, TodoService){ $rootScope.TodoService = TodoService; }) <p ng-repeat="todo in TodoService.todos"> {{todo.item}} </p> <form> <input type="text" ng-model="newTodo" /> <input type="submit" ng-click=""TodoService.todos.push({item:newTodo, done:false}) /> </form>
HTML에서 다음과 같이 작성하는 것이 더 좋을 것 같습니다.
<input type="submit" ng-click=""TodoService.todos.addodo(newTodo) />
에 메소드 추가 서비스:
app.service("TodoService", function(){ this.todos = [ {item:"",done:true}, {item:"",done:false} ]; this.addTodo = fucntion(newTodo){ this.todos.push({item:newTodo, done:false}) } })
■ 데이터 소스를 서비스에 배치하고 서비스를 컨트롤러에 삽입합니다.
app.controller("TodoCtrl", function($scope, TodoService){ this.TodoService = TodoServce; })
해당 HTML에서:
<body ng-app="app" ng-controller="TodoCtrl as todoCtrl"> <p ng-repeat="todo in todoCtrl.TodoService.todos"> {{todo.item}} </p> </body> <form> <input type="text" ng-model="newTodo" /> <input type="submit" ng-click="todoCtrl.TodoService.addTodo(newTodo)"/> </form>
■ 데이터 소스 서비스에 넣고, 컨트롤러에 서비스를 주입하고, 서버와 상호작용
실제 프로젝트에서는 서비스도 서버와 상호작용해야 합니다.
var app = angular.module("app",[]); app.service("TodoService", function($q, $timeout){ this.getTodos = function(){ var d = $q.defer(); //模拟一个请求 $timeout(function(){ d.resolve([ {item:"", done:false}, ... ]) },3000); return d.promise; } this.addTodo = function(item){ this.todos.push({item:item, done:false}); } }) app.controller("TodoCtrl", function(TodoService){ var todoCtrl = this; TodoService.getTodos().then(function(result){ todoCtrl.todos = result; }) todoCtrl.addTodo = TodoService.addTodo; })
위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 권장 사항:
Angular HMR(핫 모듈 교체) 기능을 구현하는 방법
Angularjs에서 $apply 및 최적화된 사용 정보
위 내용은 AngularJS에서 데이터 소스를 얻는 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!