2013-05-21 4 views
0

У меня есть следующие связывания в foreach переплетНокаут переплетных работ в атрибуте текста, но броски Неизвестной ошибки при использовании в HREF

<h5>Id: <span data-bind="text: ($root.link + id)"/></h5> 

и отображает штраф.
Если изменить его на

<a data-bind="attr: { href: $root.link}"/> 

якорь перемещается штраф (за исключением, очевидно, id не добавляется к концу).
Если добавить в id

<a data-bind="attr: { href: $root.link +id}"/> 

я получаю 'Невозможно разобрать связыванию ... идентификатор не определен.

Почему такой же синтаксис синтаксиса работает с текстом, но не с привязкой attr?

Благодарим за помощь.

Обновление: Я использую Breezejs, которая использует метаданные для создания observableArray. Я провел больше тестирования и обнаружил, что привязка не работает, когда поле имеет тип integer. Я прошел в поле имени, и привязка работает нормально. Я также пробовал Id.toString(), но все равно получаю Id неопределенную ошибку. Как было предложено ниже, я рассматриваю возможность использования вычислений для решения проблемы. Если это единственное решение, я думаю, что было бы лучше расширить элемент ветвления, чтобы он протекал до любой модели представления вниз.

+0

Я не знаю конкретно, почему вы бежите в эту проблему, но я знаю, что 'a' тег должен иметь закрывающий тег:' ' при использовании в качестве ссылки. –

+0

Просто чтобы вы знали, что у меня были проблемы с нокаутом, есть тег span, подобный этому , где нет явного закрывающего тега. Я не знаю, является ли это нокаутом или проблемой html, поскольку тег недействителен, потому что вы должны иметь его как Что-то Просто FYI – segFault

ответ

0

Вам понадобится вычисленная наблюдаемая ссылка linkUrl.

self.linkUrl = ko.computed (function() { return $ root.link + id; });

http://knockoutjs.com/documentation/computedObservables.html

+0

Как это поможет? 'link' и' id' не выглядят видимыми? –

+0

Они не должны быть, они просто должны быть в его модели, которая, очевидно, с тех пор, как они находятся в преддверии. – segFault

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