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

在AngularJS Services中处理数据绑定

富波光
2023-03-14
问题内容

我试图弄清楚当我的数据存储在服务中时如何正确处理绑定。

如果将服务放到$ scope中,然后让模板直接绑定到它中,我可以使事情工作,但这似乎是一个糟糕的主意。

我基本上希望拥有它,以便我的视图/控制器能够轻松地将状态更改为服务,并将其反映到各处。

感觉我应该可以执行以下操作,但是不起作用(http://jsfiddle.net/aidankane/AtRVD/1/)。

的HTML

<div ng-controller="MyCtl">
    <select ng-model="drawing" ng-options="d.file for d in drawings"></select>
</div>
<div ng-controller="MyOtherCtl">
    {{ drawing }}
</div>

JS

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

myApp.factory('myService', function(){
    var me = {
        drawings: [{'file':'a'}, {'file':'b'}]
    };
    // selected drawing
    me.drawing = me.drawings[0];
    return me;
});

function MyCtl($scope, myService){
    // can do:
    // $scope.mys = myService;
    // and then in html ng-model="mys.drawing"
    // but that seems wrong

    $scope.drawings = myService.drawings;
    $scope.drawing = myService.drawing;

    // can I not do this? it doesn't seem to work anyway...
    $scope.$watch('drawing', function(drawing){
        myService.drawing = drawing;
    });
}

function MyOtherCtl($scope, myService){
    $scope.drawing = myService.drawing;
}

MyCtl.$inject = ['$scope', 'myService'];
MyOtherCtl.$inject = ['$scope', 'myService'];

问题答案:

您可以使用$watch并传递一个函数来绑定服务:

$scope.$watch( function () { return myService.drawing; }, function ( drawing ) {
  // handle it here. e.g.:
  $scope.drawing = drawing;
});

然后$scope.drawing在您的模板中使用,它们将自动更新:

<div ng-controller="MyOtherCtl">
  {{ drawing }}
</div>


 类似资料:
  • 本文向大家介绍json数据处理及数据绑定,包括了json数据处理及数据绑定的使用技巧和注意事项,需要的朋友参考一下 一.json数据处理 1.json数据 2.获取数据 数据注入:"{{data}}" 3.数据处理: 4.数据绑定 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 英文原文:http://emberjs.com/guides/cookbook/event_handling_and_data_binding/ 下面是一些管理事件和处理绑定的技巧: 绑定对象属性到自有其他属性

  • 在我的应用模块的build.gradle中,我添加了 但我仍然收到编译器警告 一切正常,我只是讨厌到处挂着警告。 非常感谢任何帮助!

  • 数据处理 可将字段的值进行处理得到最终结果 html标签过滤 内容替换 批量替换 关键词过滤 条件判断 截取字符串 翻译 工具箱 将文本链接标记为图片链接:如果字段的值是完整的url链接(非<img>标签内的链接),可将链接识别为图片 使用函数 调用接口

  • 属于。也是。 我在表中有一个字段,我希望将其值移到另一个字段中,该字段应包含的值。和都是字母数字字段。请建议合适的方法来实现这一点。

  • 我已经在现有代码中使用了数据绑定,现在我正在迁移到持久性空间。我已经按照Florina的博客中提到的room的步骤去做了 当我删除房间依赖时,我的代码构建良好,没有java代码错误或BR相关错误 他们俩似乎不在一起工作 迄今采取的步骤: 按此处建议将BaseObservable更改为Observable 将Android Studio更新到3.0.1 尝试使用gradle最新插件canary 6