我实现了一个pin / unpin按钮,可以实时更新数据库(使用带有angularfire的firebase) .

HTML代码如下:

<a class="button button-icon energized icon"
        ng-class="{'ion-ios-star-outline': !isPinned, 'ion-ios-star': isPinned}"
        ng-click="doUpdatePinForUid(user.auth.uid, !isPinned)"></a>

isPinned变量与DB中的值同步 .

这在我的浏览器中完美运行,但是一旦我在iOS上模拟应用程序,图标从大纲到普通的更改将通过显示为灰色的中间状态...

enter image description here

  • 用户没有固定:星形是轮廓和通电

  • 我单击按钮,我的用户被固定:星是普通和灰色(但它应该通电;在不在iOS的浏览器中工作)

  • 我必须单击按钮外部(在视图中的空白区域),以便按钮变为通电状态(仅在iOS上)

我尝试调试它,灰色似乎出现,因为按钮与ng-class事物的状态不同:

  • ion-ios-star-remove-active

  • ion-ios-star-add

  • ion-ios-star-add-active

  • ......

有关信息,我尝试通过在$ timeout中包围它来更新我的控制器中的isPinned变量,因为我最初虽然它与摘要周期有关,但没有 .

任何帮助或建议?