AngularJS-使用AngularUI引导理解指令中的模板

AngularJS-使用AngularUI引导理解指令中的模板,angularjs,angularjs-directive,angular-ui-bootstrap,Angularjs,Angularjs Directive,Angular Ui Bootstrap,我正在尝试创建一个测验指令,并使用AngularUI引导的Carousel指令作为参考 Angular UI Boostrap旋转木马使用外部“旋转木马”指令和内部“滑动”指令。我已经看过了代码和参考实现,但是我在理解某些东西时遇到了困难 外部标记(即页面中的原始、预呈现、预角度化html)在对象数组上实现ng重复 <carousel interval="myInterval"> <slide ng-repeat="slide in slides" active="sl

我正在尝试创建一个测验指令,并使用AngularUI引导的Carousel指令作为参考

Angular UI Boostrap旋转木马使用外部“旋转木马”指令和内部“滑动”指令。我已经看过了代码和参考实现,但是我在理解某些东西时遇到了困难

外部标记(即页面中的原始、预呈现、预角度化html)在对象数组上实现ng重复

<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>
下面是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" +
    "");
}]);
这里没有什么神奇之处:-)
slides()
函数由
carousel
指令的控制器显式地公开在作用域上:

这里没有魔法:-)
slides()
函数由
carousel
指令的控制器在作用域上显式公开:


是的,事实上,我刚找到它。:^)我正要删除这封信。顺便说一句,我刚看完你的书。好东西!Thnx@Scott的热情话语,非常感谢!遗憾的是,这一行现在在我使用的版本中消失了。是的,事实上,我刚刚找到它。:^)我正要删除这封信。顺便说一句,我刚看完你的书。好东西!Thnx@Scott的热情话语,非常感谢!遗憾的是,我现在使用的版本中删除了这一行。
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" +
    "");
}]);
var self = this,
    slides = self.slides = [],
    ....;

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