当前位置: 首页 > 面试题库 >

AngularJS ng-model-options getter-setter

施德元
2023-03-14
问题内容

我刚刚升级到角度版本1.3.8。

当使用1.2.23版本时,我创建了一条指令来将数据表单视图转换为模型,反之亦然。

这是我的指令:

.directive('dateConverter', ['$filter', function ($filter) {

    return {

        require: 'ngModel',

        link: function (scope, element, attrs, ngModelController) {

            // Convert from view to model
            ngModelController.$parsers.push(function (value) {
                return $filter('date')(new Date(date), 'yyyy-MM-ddTHH:mm:ss')
            });

            // Convert from model to view
            ngModelController.$formatters.push(function (datetime) {
                return $filter('date')(datetime, 'MM/dd/yyyy');
            });
        }
    };
}]);

});

我在这里看到现在支持绑定中的getter和setter,但是我在任何地方
找不到如何同时使用getter setter的方法。有什么办法吗?那就是-ng-model-
options可以代替我的convert指令吗?

谢谢


问题答案:

该文档可能看起来有些模糊,但是用法非常简单。你需要做什么:

  1. HTML:

    <input ng-model="pageModel.myGetterSetterFunc"
    

    ng-model-options=” {getterSetter: true }”>

  2. 在JS控制器中,而不是实际模型中,创建一个函数,该函数将在没有发送参数的情况下返回值(+应用剥离),并且在发送参数的情况下将更新模型(+应用其他更改)。

getter / setter方法基本上是视图值和模型值之间的另一个“层”。

例:

$scope.pageModel.firstName = '';
$scope.pageModel.myGetterSetterFunc: function (value) {
  if (angular.isDefined(value)) {
    $scope.pageModel.firstName = value + '...';
  } else {        
    return $scope.pageModel.firstName.substr(0,
      $scope.pageModel.firstName.lastIndexOf('...')
    );
  }
}

DEMO PLUNKER:http
://plnkr.co/edit/Zyzg6hLMLlOBdjeW4TO0?p=preview

(检查控制台-http:
//screencast.com/t/3SlMyGnscl)

注意:有趣的是,这将在可重用性方面进行扩展。我建议将这些getter /
setter创建为可外部化的可重用方法,并为它们提供生成器(因为每种情况下的数据模型都不同)。并在控制器中仅调用那些生成器。只是我的2美分。



 类似资料:
  • 描述 (Description) 要指定模型类,我们需要覆盖集合类的model属性。 语法 (Syntax) Backbone.Collection.model 例子 (Example) <!DOCTYPE html> <html> <head> <title>Collection Example</title> <script src = "https://cod

  • 模型包含动态数据及其逻辑。 转换,验证,计算属性和访问控制等逻辑属于“模型”类别。 由于它包含所有应用程序数据,因此模型也被称为heart of JavaScript application的heart of JavaScript application 。 下表列出了可用于操作BackboneJS模型的所有方法 - S.No. 方法和描述 1 extend 它扩展了backbone.Model类

  • 以下是模型的子类型 - iges vnd.gdl vnd.parasolid.transmit.binary mesh vnd.gs-gdl vnd.parasolid.transmit.text vnd.dwf vnd.gtw vnd.vtu vnd.flatland.3dml vnd.mts vrml

  • Data Model Inference Criticism Compositionality Development Model A probabilistic model is a joint distribution (p(\mathbf{x}, \mathbf{z})) of data $(\mathbf{x})$ and latent variables $(\mathbf{z})$.

  • 基础使用 // 定义一个 Eloquent 模型 class User extends Model {} // 生成一个 Eloquent 模型 php artisan make:model User // 指定一个自定义的数据表名称 class User extends Model { protected $table = 'my_users'; } More Model

  • 设备类型 Fieldsid (ID!) 唯一 IDname (String!) 名字type (String!) 类型,如 灯skillId (String!) vendorName (String) vendorId (ID) url (String) imageUrl (String)

  • 本文向大家介绍chain model相关面试题,主要包含被问及chain model时的应答技巧和注意事项,需要的朋友参考一下 https://blog.csdn.net/u013569304/article/details/81290281 chain model是DNN-HMM模型的一种,使用nnet3结构 使神经网络的输出的帧率缩小三倍,明显的缩小了测试时的计算量,使实时解码更加容易 模型从

  • The obj-model component loads a 3D model and material using a Wavefront(.OBJ) file and a .MTL file. Example We can load an .OBJ model by pointing to assets that specify the path to an .OBJ and .MTL fi