Angularjs передает простую строку компоненту
Я отчаянно пытаюсь передать простую строку в компонент AngularJS, у меня есть следующий компонент angularJS:
асинхронному typeahead.componenet.js:
angular.module('asyncTypeahead').component('asyncTypeahead', {
templateUrl: 'static/partials/async-typeahead/async-typeahead.template.html',
bindings: {
pk: '=',
object: '=',
objectType: '@'
},
controller: ['$scope','$http',
function AsyncTypeaheadController($scope, $http) {
var self = this;
self.getTags = function (val) {
console.log("async-typeahead input is: " +val);
console.log("async-typeahead object keys are: " + angular.toJson(self.object));
console.log("async-typeahead type is: " + angular.toJson(self.objectType));...
И следующий html для вызова компонента:
<async-typeahead object="$ctrl.actor.actor_tags" objectType={{ This is just a string }}></async-typeahead>
'val' - это просто ввод от typeahead.
я пробовал objectType={{ This is just a string }}
а также objectType="This is just a string"
а также objectType=This is just a string
Я также попытался изменить привязку с '=' на '@' или '>', результат тот же:
всякий раз, когда я смотрю на консоль, я всегда получаю:
ввод async-typeahead: df
kes объекта async-typeahead: [37,43,49]
Тип async-typeahead: не определено
Что я делаю неправильно? Как передать простую строку в компонент angularJS?
1 ответ
Проблема с атрибутом objectType, который вы использовали в html. Имя директивы / компонента и все его атрибуты должны использоваться в качестве разделителя "-".
Правильный код прилагается ниже:
<async-typeahead object="$ctrl.actor.actor_tags" object-type="This is just a string"></async-typeahead>