将服务注入控制器

时间:2014-07-17 14:12:42

标签: angularjs

将服务注入控制器时出现编译错误。这个应用程序的预期输出应该只是文本"你好"在网页上。

<!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/

我显然做错了什么。我使用SO中发布的一些代码构建了这个: https://stackoverflow.com/a/14846975/753632

1 个答案:

答案 0 :(得分:2)

当涉及到使用外部依赖项时,错误似乎来自于jsfiddle并不是很棒。通过要求它在<head>而不是onLoad中包含角度来修复该位。

要在模板中实际呈现模板,$watch,就像这样

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

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