ho una direttiva chiamato iframely
e mi è all'interno di un ng-repeat
come questo:Errore di sintassi: Token ':' è un token imprevisto quando la variabile di passaggio alla direttiva
<iframely url="iterator.url"></iframely>
Questo solo considera il valore come stringa "iterator.url"
, non il valore effettivo di .url
. Per sperimentare, ho appena messo in un URL direttamente:
<iframely url="https://soundcloud.com/braxe1/braxe-one-more-chance"></iframely>
Il che mi dà l'errore Syntax Error: Token ':' is an unexpected token
. Il più vicino che ho avuto modo di passare questo valore per la direttiva è:
<iframely url="'{{iterator.url}}'"></iframely> // note double and single quotes
questo risolve il parametro URL del iterator
, ma anche lo passa insieme ai ' '
-virgolette singole come parte della stringa.
EDIT: provato anche che senza le virgolette singole.
<iframely url="{{iterator.url}}"></iframely>
e ottenuto Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 2 of the expression [{{iterator.url}}] starting at [{iterator.url}}]
Qual è il modo corretto di fare questo?
EDIT2: Ecco il codice per la direttiva:
angular.module('iframely', [])
.directive('iframely', [ '$http', '$sce', function ($http, $sce) {
return {
replace: true,
restrict: "E",
scope: {
url: '='
},
template: '<div ng-bind-html="content"></div>',
link: function (scope, element, attrs) {
$http({
url: 'http://localhost:8061/iframely',
method: 'GET',
params: {
url: attrs.url
}
})
.then(function (result) {
scope.content = $sce.trustAsHtml(result.data.html)
})
}
}
}])
url = "{{iterator.url}}" senza virgolette singole ... – micronyks
@micronyks In realtà, quello era il primo che ho provato. 'Errore: [$ parse: sintassi] Errore di sintassi: Token '{' chiave non valida nella colonna 2 dell'espressione [{{iterator.url}}] a partire da [{iterator.url}}' – Noah
Puoi pubblicare il codice per la tua direttiva? – adam0101