>  기사  >  웹 프론트엔드  >  AngularJS에서 데이터 소스를 얻는 세 가지 방법

AngularJS에서 데이터 소스를 얻는 세 가지 방법

不言
不言원래의
2018-07-02 15:03:231616검색

이 글에서는 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 중국어 홈페이지를 주목해주세요!

관련 권장 사항:

js에서 다중 선택 버튼을 구현하는 방법

Angular HMR(핫 모듈 교체) 기능을 구현하는 방법

Angularjs에서 $apply 및 최적화된 사용 정보

위 내용은 AngularJS에서 데이터 소스를 얻는 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.