具有隔离范围的角度指令

时间:2016-07-03 17:02:09

标签: angularjs angularjs-directive

我很难理解Angular Directives。我有一组来自另一个文件的数据,我在我的HTML中重复(它是一堆国家名称及其标志)。我需要两个指令<outer-box><flag>。在页面加载时,国家/地区名称应显示占位符图像。单击占位符图像时,应显示标志图像,并更改背景颜色。 两个指令必须是隔离范围。当你在<outerbox>指令中时,我会遇到如何更改样式/添加<flag>指令类的问题。

这是我的HTML

<div class="blocks" ng-repeat="country in countries">
    <outer-box>
    </outer-box>
</div>

和我的角度代码

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

app.controller('mainController',['$scope','$http',function($scope, $http){
  $scope.countries = [];
  $http.get('./js/flags.js').then(function(response){
    $scope.countries = response.data;
  });
}]);

app.directive('outerBox', function(){
  return {
    restrict: 'AE',
    template: "<h1>{{country.name}}</h1>" + '<flag></flag>'
  }
});

app.directive("flag", function(){
  return {
   restrict: 'AE',
   link: function(scope, elem, attrs) {
       elem.bind('click', function() {
         elem.addClass("active");
         elem.css("background-image", 'url("{{country.flag}}")');
       });
       elem.bind('mouseover', function() {
           elem.css('cursor', 'pointer');
       });
   }
  }

});

0 个答案:

没有答案