KnockoutJS与关系和laravel合作

时间:2015-10-24 16:22:13

标签: javascript php json laravel knockout.js

我正试图让这种关系正常运作。到目前为止,我已经设法通过json“获得”关系,但我无法使用它。

标题模型:

public function favorite()
{
if(auth()->check()){
    return $this->hasOne('App\Models\Titles\UserTitle')->where('user_id', auth()->user()->id);
}
 return $this->hasOne('App\Models\Titles\UserTitle');
}

Knockoutjs脚本,如果您需要我,我可以提供其余的代码:

handleLists: function(item, titleId) {
    var self = app.viewModels.titles.index,
    alreadyAdded = self[item]();

    app.utils.ajax({
        url: alreadyAdded ? vars.urls.baseUrl + '/lists/remove' : vars.urls.baseUrl + '/lists/add',
        data: ko.toJSON({ _token: vars.token, list_name: item, title_id: titleId }),
        success: function(data) {
            if (alreadyAdded) { 
                app.utils.noty(data, 'info');
                self[item](false);
            } else {
                app.utils.noty(data, 'success');
                self[item](true);
            }  
        }
    })
},

完整的Knockout脚本:http://pastebin.com/fMN5ha1j

我在视图中专门使用此代码。它在data-bind

的“foreach:”参数下提供
                    <div id="favorite" class="snippet" data-bind="click: $root.handleLists.bind($data, 'favorite', $data.id)">
                        <span data-bind="if: favorite">
                            <i class="fa fa-heart"></i>
                        </span>

                        <span data-bind="ifnot: favorite">
                            <i class="fa fa-heart-o"></i>
                        </span>
                    </div>

完整视图:http://pastebin.com/rGa2QhJY

if:收藏夹或ifnot:收藏夹不起作用

这是一个示例json格式,其关系为:http://pastebin.com/UaZVg227

0 个答案:

没有答案