Да, вы можете связать сразу несколько атрибутов с помощью нескольких помощников bind-attr
, например, в вашем примере или просто поместить все атрибуты в один вспомогательный помощник bind-attr
. Однако у вас есть проблема в вашем примере, поэтому все работает не так, как ожидалось.
Форма «значение, если истина», которую вы используете для атрибута класса, не может применяться к другим типам атрибутов. Все остальные атрибуты должны быть привязаны к динамическому свойству на контроллере. Например, если у вас есть контроллер, который выглядел так:
App.MyController = Ember.ObjectController.extend({
myId: function() {
if (this.get("active") === true) {
"active-nav"
} else {
"inactive-nav"
}
}.property("active")
});
Тогда вы бы связать, что как так:
<a href="#/{{unbound goto}}" {{bind-attr id="myID"}}>
Просто побочное замечание на этом примере, вероятно, это код запах, если вам имеют динамический идентификатор для HTML-элемента. Идентификаторы должны однозначно идентифицировать один элемент, и я не ожидал, что они изменятся. Кажется, что класс будет лучше подходит для этого варианта использования.
Если у вас есть потребность в довольно большом количестве привязок, вам, вероятно, стоит подумать о создании собственного класса 'View' или' Component' для этой цели. – herom