我想操縱發送給我的指令的數據,即。我有一個顯示的用戶名和使用這樣的MYUSER指令:如何操作隔離的範圍輸入變量?
<my-user id="25" name="John Doe"></my-user>
我想它轉換爲:
<a ng-click="navTo('/user/25')">John Doe</a>
所以我想用
和一套更換任何空間根據用戶的ID確定新的位置。這裏是我的指令定義:
angular.module('myApp').directive('myUser', function ($location, $log) {
return {
restrict: 'EA',
scope: {
id: '@',
name: '@'
},
template: '<a ng-click="navTo(\'/users/\' + {{id}})">{{name}}</a>',
controller: function ($scope) {
$scope.name.replace(' ', ' ');
},
link: function (scope, element, attrs, fn) {
scope.name.replace(' ', ' ');
scope.navTo = function (route) {
$log.info('Navigating to ' + route);
$location.path(route);
};
}
};
});
然而,替換不會發生。我假設控制器和鏈接函數都在模板渲染後執行。
此外,navTo函數返回以下錯誤:
Error: [$parse:syntax] Syntax Error: Token 'id' is unexpected, expecting [:] at column 21 of the expression [navTo('/users/' + {{id}})] starting at [id}})].
如何解決這個任何想法,將不勝感激。
你不需要'{{}}''左右id'。 –
我們沒有{{}}值不會插值,它會給字符串'id'而不是值25 –
@AnthonyChu - 很好,它沒有{{}}工作。任何想法爲什麼替換不起作用? – Onestone