У меня есть директива с областью выделения, которая получает элементы от своего родителя:
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>
Приведенный выше код не работает. Можно ли это сделать? Это АБСОЛЮТНО ужасная практика?
Изменение: я просто добавил новую переменную в родительскую область, которая упаковывает то, что мне нужно, в объект, завернутый в массив (потому что директива принимает массив). Сейчас это чисто теоретический вопрос.
Редактировать:
<my-directive items = "[ {id: 5, description: {{someScopeVar.someTextProp}}} ]"></my-directive-items>
Для того, чтобы:
<my-directive items = "[ {id: 5, description: someScopeVar.someTextProp} ]"></my-directive-items>
вы можете получить случайный объект с функцией
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>
up vote
иaccept
. Если вы не можетеdown vote