• AngularJS学习笔记一


    Select下拉列表框的使用:

    <select ng-model="selected" ng-options="user.id as user.name for user in users | orderBy:'age' "></select>

    1、添加“ng-model”指令,代表下拉框绑定的实体对象

    2、添加“ng-options”指令,指令的形式四种:

    ① model.text for model in array;

    ② mode.value as model.text for model in array;

    ③ model.text grou by group for model in array;

    ④ model.value as model.text group by group for model in array;

    以上②和④中的model.value是下拉列表各个项的value值,可以将其绑定为array数组中一个元素的的某个属性,也可直接绑定为array数组中单个元素对象,

    即 mode as model.text for model in array;

    3、为下拉框设置默认选中项,selected=users[0].id

    服务(Service

    创建服务有多种种方式:FactoryServiceProviderDecoratorConstantValue

    介绍几种常用创建服务方法:①FactoryServiceProvider

    1、Factory可创建多个服务,然后将Factory名称注入到Controller中去,使用Factory对象来获取具体的服务对象。

    2、Service只创建一个特定的具体服务,再注入到Controller中去使用。

    3、Provider提供一个具体的服务+服务的配置信息。通过指定服务的配置信息,来实现一个服务的多种表现形式,以适配各种需求。

    各创建服务的方式代码如下:

    ① Factory

    app.factory(“myFactory”,function(){
      var services={
        “serviceName1”:function() { ... }, //服务1 
        “serviceName2”:function() { ... }, //服务2 
        “serviceName3”:function() { ... }, //服务3 
        ……
      };
      return  services; //将所有服务返回(工厂模式)
    })

     应用:

    var app = angular.module("app", []);
    //factory
    app.factory("factory", function ($http, $q) {
        var factory = {
            "getUsers": function () {
                var deferred = $q.defer(); // 声明延后执行,表示要去监控后面的执行
                $http.post("/Demo/GetUsers")
                    .success(function (data) {
                        deferred.resolve(data);  // 声明执行成功,即http请求数据成功,可以返回数据了
                    });
                return deferred.promise;        //返回promise对象
            }
        };
        return factory;
    });
    //注入factory
    app.controller("serviceCtrl", function ($scope, factory) {
        var promise = factory.getUsers();  //调用factory中的service
        promise.then(function (data) {
            $scope.users = data;
        });
    });    

    ② Service

    app.service(“myService”,function(){
      var service = function() { ... } //具体服务
      return  service; //返回具体服务
    })

     应用:

    //service
    app.service("service", function ($http, $q) {
        function getUsers() {
            var deferred = $q.defer(); // 声明延后执行,表示要去监控后面的执行
            $http.post("/Demo/GetUsers")
                .success(function (data) {
                    deferred.resolve(data);  // 声明执行成功,即http请求数据成功,可以返回数据了
                });
            return deferred.promise;        //返回promise对象
        }
        return getUsers;
    });
    
    //注入service
    app.controller("serviceCtrl", function ($scope, service) {
        $scope.getUsers= function () {
            var promise = service();        //直接调用service
            promise.then(function (data) {
                $scope.users = data;
            });
        };
    });

    ③ Provider

    app.factory(“myProvider”,function(){
      var provider={
        “serviceName”:function() { ... }, //服务
        “config”: { ... }, //配置信息
      };
      return  provider; //将所有服务和配置信息返回(通过配置让服务表现不同结果)
    })

    调用时,修改配置: 

    app.config(function(myProviderProvider){
        myProviderProvider.config = {.....} //修改配置
    });

     

  • 相关阅读:
    C语言实现两栈空间共享
    MyEclipse里项目部署到tomcat上之后,tomcat webpps文件夹里为什么找不到这个项目
    CSS选择器
    用友2016成都校园招聘笔试题
    windows、ubuntu下eclipse搭建java、Python环境问题总结
    ubuntu上用eclipse搭建java、python开发环境
    windows 下用eclipse搭建java、python开发环境
    简单事件机制的研究
    软件测试(软件安装:php+mysql+apache+mantis过程遇到的问题以及解决方法)
    4、总结一下,以软件开发生命周期来说明测试的使用情况。
  • 原文地址:https://www.cnblogs.com/elic/p/4064028.html
Copyright © 2020-2023  润新知