从Html传递对象到指令

时间:2016-05-27 14:12:54

标签: javascript html angularjs

我有一个带有隔离范围的指令,它接收来自其父项的项目:

scope: {
  items: '=?items'
}

例如,如果我有:

$scope.items = [
  {id: 1, description: 'foo'},
  {id: 2, description: 'bar'},
]

我可以这样传递:

<my-directive items = "items"></my-directive>

问题在于我并不总是将项目整齐地打包到对象中,并且在某些情况下我想传递随机数据。例如:

<my-directive items = "[ {id: 5, description: {{someScopeVar.someTextProp}}} ]"></my-directive-items>

上面的代码不起作用。有可能吗?是绝对可怕的做法吗?

编辑:我刚刚在父作用域上添加了一个新变量,它将我需要的内容打包到一个包含在数组中的对象中(因为指令采用数组)。这是一个纯粹的理论问题。

2 个答案:

答案 0 :(得分:1)

编辑:

<my-directive items = "[ {id: 5, description: {{someScopeVar.someTextProp}}} ]"></my-directive-items>

要:

<my-directive items = "[ {id: 5, description: someScopeVar.someTextProp} ]"></my-directive-items>

答案 1 :(得分:0)

你可以通过函数获得随机对象

scope: {
  items: '&'
}
控制器中的

$scope.items = [
  {id: 1, description: 'foo'},
  {id: 2, description: 'bar'},
]

$scope.getRandom = function(){
     // do something here ( wrap object in array, get random object etc)
     // return $scope.myWrapedObject
}

<my-directive items = "getRandom()"></my-directive>