AngularJS-使用Angular UI Bootstrap了解指令中的模板

史考特

我正在尝试创建一个测验指令,并且正在使用Angular UI Bootstrap的Carousel指令作为参考。

Angular UI Boostrap轮播使用外部“轮播”指令和内部“ slide”指令。我已经仔细阅读了代码和参考实现,但是在理解某些内容时遇到了麻烦。

外部标记(即页内原始,预渲染,预成角度的html)在对象数组上实现ng-repeat。

<carousel interval="myInterval">
    <slide ng-repeat="slide in slides" active="slide.active">
         <div class="carousel-caption">
             <h4>Slide {{$index}}</h4>
             <p>{{slide.text}}</p>
         </div>
    </slide>
</carousel>

我了解中继器在“幻灯片”中的工作方式是对$ scope.slides对象数组的引用。我不理解的是在模板中对“ slides()”的引用。数组如何成为函数?

该指令实现为:

.directive('carousel', [function() {
  return {
    restrict: 'EA',
    transclude: true,
    replace: true,
    controller: 'CarouselController',
    require: 'carousel',
    templateUrl: 'template/carousel/carousel.html',
    scope: {
      interval: '=',
      noTransition: '=',
      noPause: '='
    }
  };
}])

下面是carousel.html上的模板。注意在li中继器中对“ slides()”的引用。

angular.module("template/carousel/carousel.html", []).run(["$templateCache", function($templateCache) {
  $templateCache.put("template/carousel/carousel.html",
    "<div ng-mouseenter=\"pause()\" ng-mouseleave=\"play()\" class=\"carousel\">\n" +
    "    <ol class=\"carousel-indicators\" ng-show=\"slides().length > 1\">\n" +
    "        <li ng-repeat=\"slide in slides()\" ng-class=\"{active: isActive(slide)}\" ng-click=\"select(slide)\"></li>\n" +
    "    </ol>\n" +
    "    <div class=\"carousel-inner\" ng-transclude></div>\n" +
    "    <a class=\"left carousel-control\" ng-click=\"prev()\" ng-show=\"slides().length > 1\"><span class=\"icon-prev\"></span></a>\n" +
    "    <a class=\"right carousel-control\" ng-click=\"next()\" ng-show=\"slides().length > 1\"><span class=\"icon-next\"></span></a>\n" +
    "</div>\n" +
    "");
}]);

更新

我只是看了CarouselController中的代码,并看到了这些行。所以,那是从那里来的。谢谢pkozlowski.opensource的确认。:^)

var self = this,
    slides = self.slides = [],
    ....;

$scope.slides = function() {
    return slides;
};
pkozlowski.opensource

这里没有魔术:-)该slides()函数由carousel指令的控制器显式地显示在作用域上

https://github.com/angular-ui/bootstrap/blob/6bc6634cf5dca91331b4147b29f0d0d28fe145d2/src/carousel/carousel.js#L107

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AngularJS-使用Angular UI Bootstrap了解指令中的模板

来自分类Dev

AngularJS / Angular-ui-bootstrap更改datePicker使用的语言

来自分类Dev

使用ui-router禁用AngularJS中的模板缓存

来自分类Dev

在AngularJS中搜索无法与Angular Bootstrap UI一起使用

来自分类Dev

如何通过 angularjs 中的 npm 安装 angular-ui-bootstrap?

来自分类Dev

AngularJS-带有Angular UI引导程序的指令

来自分类Dev

指令模板Angular Js中的动态ui-sref

来自分类Dev

AngularJS UI网格问题与cellTemplate中的指令

来自分类Dev

AngularJS OpenLayers指令-在angular-ui-dialog中不起作用

来自分类Dev

AngularJS:使用angular属性指令将元素包装到自定义模板中

来自分类Dev

ui-grid angularjs单元格模板中的自定义指令

来自分类Dev

ui-grid angularjs单元格模板中的自定义指令

来自分类Dev

在自己的指令中包装Angular.js ui-bootstrap或ui-select指令

来自分类Dev

基于AngularJS的UI组件,quantumui,angular-strap,angular-bootstrap-ui

来自分类Dev

控制器或指令中的Angular Bootstrap UI模态?

来自分类Dev

使用脚本 ui.route angularjs 调用插件模板/页面?

来自分类Dev

如何使用ngrepeat和bootstrap ui使用angularjs创建分页?

来自分类Dev

使用ui bootstrap tpls指令

来自分类Dev

使用ui.bootstrap和AngularJS进行多次折叠

来自分类Dev

使用Module.Controller()语法的AngularJS UI Bootstrap 0.6.0模态

来自分类Dev

使用AngularJS自定义Bootstrap UI警报

来自分类Dev

如何为ui-bootstrap datepicker创建angularJs包装指令?

来自分类Dev

如何防止用户表单忽略 angularjs 中的建议 angular-ui-bootstrap uib-typeahead

来自分类Dev

在Kendo UI中使用AngularJS

来自分类Dev

在Angularjs中的另一个指令模板中使用一个指令

来自分类Dev

如何在Angular UI Bootstrap Datepicker中使用模板?

来自分类Dev

如何在Angular UI Bootstrap Datepicker中使用模板?

来自分类Dev

如何使用ui-router在angularjs中动态更改视图

来自分类Dev

在指令模板中使用ui-validate

Related 相关文章

  1. 1

    AngularJS-使用Angular UI Bootstrap了解指令中的模板

  2. 2

    AngularJS / Angular-ui-bootstrap更改datePicker使用的语言

  3. 3

    使用ui-router禁用AngularJS中的模板缓存

  4. 4

    在AngularJS中搜索无法与Angular Bootstrap UI一起使用

  5. 5

    如何通过 angularjs 中的 npm 安装 angular-ui-bootstrap?

  6. 6

    AngularJS-带有Angular UI引导程序的指令

  7. 7

    指令模板Angular Js中的动态ui-sref

  8. 8

    AngularJS UI网格问题与cellTemplate中的指令

  9. 9

    AngularJS OpenLayers指令-在angular-ui-dialog中不起作用

  10. 10

    AngularJS:使用angular属性指令将元素包装到自定义模板中

  11. 11

    ui-grid angularjs单元格模板中的自定义指令

  12. 12

    ui-grid angularjs单元格模板中的自定义指令

  13. 13

    在自己的指令中包装Angular.js ui-bootstrap或ui-select指令

  14. 14

    基于AngularJS的UI组件,quantumui,angular-strap,angular-bootstrap-ui

  15. 15

    控制器或指令中的Angular Bootstrap UI模态?

  16. 16

    使用脚本 ui.route angularjs 调用插件模板/页面?

  17. 17

    如何使用ngrepeat和bootstrap ui使用angularjs创建分页?

  18. 18

    使用ui bootstrap tpls指令

  19. 19

    使用ui.bootstrap和AngularJS进行多次折叠

  20. 20

    使用Module.Controller()语法的AngularJS UI Bootstrap 0.6.0模态

  21. 21

    使用AngularJS自定义Bootstrap UI警报

  22. 22

    如何为ui-bootstrap datepicker创建angularJs包装指令?

  23. 23

    如何防止用户表单忽略 angularjs 中的建议 angular-ui-bootstrap uib-typeahead

  24. 24

    在Kendo UI中使用AngularJS

  25. 25

    在Angularjs中的另一个指令模板中使用一个指令

  26. 26

    如何在Angular UI Bootstrap Datepicker中使用模板?

  27. 27

    如何在Angular UI Bootstrap Datepicker中使用模板?

  28. 28

    如何使用ui-router在angularjs中动态更改视图

  29. 29

    在指令模板中使用ui-validate

热门标签

归档