Я следовал этому руководству о создании клона WhatsApp, пытаясь научиться объединять Angular и Meteor вместе. Я медленно строю вещь, она работает правильно, но теперь у меня странное поведение (ошибка?). Я создал одно представление чата после создания представления нескольких чатов, а затем вы добавляете атрибут href
к каждому чату в представлении нескольких чатов, чтобы перейти к представлению одного чата. Это кажется очень простым (я добавил несколько пробелов вокруг соответствующей строки):
<ion-list>
<ion-item ng-repeat="chat in chats.data | orderBy:'-lastMessage.timestamp'"
class="item-chat item-remove-animate item-avatar item-icon-right"
type="item-text-wrap"
href="#/tab/chats/{{ chat._id }}">
<img ng-src="{{ chat.picture }}">
<h2>{{ chat.name }}</h2>
<p>{{ chat.lastMessage.text }}</p>
<span class="last-message-timestamp">{{ chat.lastMessage.timestamp | calendar }}</span>
<i class="icon ion-chevron-right icon-accessory"></i>
<ion-option-button class="button-assertive" ng-click="chats.remove(chat)">
Delete
</ion-option-button>
</ion-item>
</ion-list>
И это не работает. В частности, когда вы нажимаете на любой чат, он никуда вас не отправляет. Там нет сообщения об ошибке, ничего. Если я проверю его с помощью инструментов разработчика Chrome и вручную введу ссылку, он будет работать нормально, как и ожидалось.
Я не знаю, в чем проблема.
обновление
Итак, очевидно, что базовый URI использует нечто, называемое «hashbang» , поэтому теперь он работает после того, как я изменил ссылки следующим образом:
href="#!/tab/chats/{{ chat._id }}"
Но другая часть кода ... не использует это, и все равно работает нормально. все основные вкладки выглядят так:
<ion-tab title="Favorites" href="#/tab/favorites">
<ion-nav-view name="tab-favorites"></ion-nav-view>
</ion-tab>
Почему они не нуждаются в хэш-бэнге, а в одиночном чате URI? Я действительно запутался во всем этом.