2

演示:http: //jsfiddle.net/sunnycpp/MPACc/4/

此处复制粘贴相同的代码: HTML

<div class="container">
  <debug-bar ng-controller="parentController">
    <debug-bar ng-controller="childController">
      <debug-bar ng-controller="oneMoreChildController"></debug-bar>
    </debug-bar>
    <debug-bar ng-controller="oneMoreChildController"></debug-bar>
  </debug-bar>
</div>

Javascript

var angModule = angular.module('components', []);
angModule.directive('debugBar', function () {
  return {
    restrict: 'E',
    template: 
    '<div>'+
        '<form class="form-inline">' +
            '<input type="text" class="input-small" ng-model="myText"/>' +
            '<button class="btn btn-primary">Broadcast</button>' +
            '<button class="btn btn-primary">Emit</button>' +
        '</form>' +
        '<div ng-transclude></div>'+
    '</div>',
    transclude: true,
    replace: true
  };
});


function createController(myText) {
  return function ($scope) {
    $scope.myText = myText;
    $scope.$on("event", function (senderText) {
      console.log("Event received in:" + $scope.myText + " from Sender:" + senderText);
    });
    $scope.$broadCastEvent = function () {
      $scope.$broadcast("event", $scope.myText);
      console.log("Sent event from:" + $scope.myText);
    };
  };
}

angModule.controller("parentController", createController("In parent"));

angModule.controller("childController", createController("in FirstChild"));

angModule.controller("oneMoreChildController", createController("in oneMoreChildController"));
angModule.controller("oneMoreChildController", createController("in secondLevelChild"));
4

1 回答 1

4

因为你没有定义任何东西。:p jsfiddle 和 bootstrap 重置边距,你没有定义任何...

定义一些边距可以立即解决问题

input,button{
 margin:0 5px;
}

例子

于 2013-01-18T08:20:01.107 回答