簡體   English   中英

將服務注入控制器

[英]Injecting service into controller

將服務注入控制器時,出現編譯錯誤。 該應用程序的預期輸出應僅為網頁上的文本“ hello”。

<!doctype html>
<html>
<head>
</head>
<body ng-app="ddApp">
  <div ng-controller="ddController">
    <div svc-show-meetings template="{{template}}">
    </div>
  </div>
</body>
<script>
  var ddApp = angular.module('ddApp', [])

  ddApp.factory('svcMeetingsTemplate', function ()
  {
    return function ()
    {
      return "<div>Hello</div>";
    };
  });

  ddApp.directive('svcShowMeetings', function ($compile)
  {
    return {
      scope: true,
      link: function (scope, element, attrs)
      {
      }
    };
  });

  ddApp.controller('ddController', ['$scope', 'svcMeetingsTemplate', function ($scope, svcMeetingsTemplate)
  {
    $scope.template = svcMeetingsTemplate();
  }]);
</script>
</html>

小提琴: http : //jsfiddle.net/Xp5BF/1/

我顯然做錯了。 我使用在此處發布的一些代碼構建了此代碼: https : //stackoverflow.com/a/14846975/753632

該錯誤似乎是由於使用外部依賴項時jsfiddle不夠出色而引起的。 通過要求它在<head>包含angular而不是onLoad來固定該位。

要實際渲染模板,請在指令中像這樣$watch

scope.$watch('template', function() {
    element.append(scope.template);
});

http://jsfiddle.net/Xp5BF/12/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM