2015-07-10 2 views
0

Я пытаюсь использовать директивы, однако мне грозит проблема с прохождением через логическое значение. Когда я оцениваю мою страницу, это то, что я получаю как ошибка:Использование логического значения в пользовательской директиве angularjs

Syntax Error: Token '{' invalid key at column 2 of the expression [{{app.isNew}}] starting at [{app.isNew}}].

код я использую выглядит следующим образом:

home.html

<featured-app app-title="{{app.title}}" app-is-new={{app.isNew}}></featured-app> 

домой. js

app.controller('HomeCtrl', [ '$scope', function($scope) { 
    $scope.app.title = "App name"; 
    $scope.app.isNew = true; 
}]); 

featuredApp.js

app.directive('featuredApp', function() { 
    return { 
     templateUrl: 'directives/templates/featuredApp.html', 
     scope: { 
      appTitle: '@', 
      appIsNew: '=' 
     } 
    }; 
}); 

featuredApp.html

<h2>{{appTitle}} <span class="label label-default" ng-show="{{appIsNew}}">New</span></h2> 

Кто-нибудь есть какие-либо идеи, почему я получаю ошибку выше? Я не знаю, где я ошибся.

ответ

0

Изменить HTML для:

home.html

<featured-app app-title="{{app.title}}" app-is-new="app.isNew"></featured-app> 

или изменить featuredApp.js на:

app.directive('featuredApp', function() { 
    return { 
     templateUrl: 'directives/templates/featuredApp.html', 
     scope: { 
      appTitle: '@', 
      appIsNew: '@' 
     } 
    }; 
}); 

выше, зависит от ваших требований. Один - односторонний, связанный другой - двусторонний. Хотя вы должны также сделать следующие изменения:

featuredApp.html

<h2>{{appTitle}} <span class="label label-default" ng-show="appIsNew">New</span></h2> 
0

Replace:

<featured-app app-title="{{app.title}}" app-is-new={{app.isNew}}></featured-app> 

С:

<featured-app app-title="app.title" app-is-new=app.isNew></featured-app> 

И:

appTitle: '@', 

С:

appTitle: '=', 

Проблема заключалась в том, что вы использовали {{}} в тех местах, где Угловая ожидает имя переменной.

Смежные вопросы