带有隔离范围变量的编译指令未定义

时间:2015-03-31 16:03:39

标签: angularjs angularjs-directive angularjs-scope angularjs-compile

我需要编译一个指令,因为它需要一个从DB返回的ID,但似乎无法将其持久化到指令。

$scope.orderInfo = {
  orderId: 'lkdfj232jh'
};
$scope.compile = function() {
   var html = $compile('<apps orderId="orderInfo.orderId"></apps>')($scope);
   $('#apps').append(html);
};

return {
  templateUrl: 'apps.html',
  restrict: 'E',
  scope: {
    orderId: '='
  },
  controller: function($scope) {
    console.log($scope.orderId);
  }
}

orderId总是在指令内部未定义。

Plunker

1 个答案:

答案 0 :(得分:2)

属性名称应为order-id(带连字符)而不是orderId

$scope.compile = function() {
   var html = $compile('<apps order-id="orderInfo.orderId"></apps>')($scope);
   $('#apps').append(html);
};

Working Plnkr