在Angular Js中绑定指令范围而没有控制器范围?

时间:2015-02-26 07:48:38

标签: angularjs

html:

   <div ng-app="appMod">
    <div task-info>{ { data.name } }</div>
   </div>

脚本:

var appmod = angular.module('appMod', []);
appmod.directive("taskInfo", function () {
    return {
        restrict: 'A',
        scope: {},
        link: function ($scope, $element, attr) {

            $scope.taskdat = '{"name":"Task name","status":"Completed"}';
            $scope.data = JSON.parse($scope.taskdat);
            scope = $scope; //scope data
        },
    };
});

是否可以在Angular Js中绑定指令范围而不具有控制器范围?如果是,请给我一些解决方案的例子。

2 个答案:

答案 0 :(得分:1)

您不需要控制器范围来编写指令,请参阅 fiddle

这里没有控制器范围,值hero在指令中绑定为:

myApp.directive('myDirective', function() {
  return {
        restrict: 'EAC',
        link: function($scope, element, attrs, controller) {
          var controllerOptions, options;


            $scope.hero='superhero'
        }
      };

});

正常工作:)

<小时/> 您提供的示例也类似,但您只需要从返回的JSON对象(来自指令)中删除scope,因为它在链接fucntion中被定义为$scope

请参阅:http://jsfiddle.net/bg0L80Lx/

答案 1 :(得分:0)

控制器选项?

.directive('mydirective', function() {
    return {
restrict: 'A', // always required
//controller: 'SomeController'
template:'<b>{{status}}</b>',
controller:'YourCtrl'
 }
})