如何将JS变量传递到Vue实例

时间:2019-03-28 19:40:42

标签: vue.js laravel-5 laravel-blade

在我的Laravel刀片模板中,我有一个javascript代码段,该代码段生成一个变量,该变量保存数组的索引(名为nextIndex)。我想在Vue实例中使用该索引,如下所示:

enum Tag: String {
    case bold, italic, underline
}

extension Tag: Comparable {
    static func <(lhs: Tag, rhs: Tag) -> Bool {
        return lhs.hashValue < rhs.hashValue
    }
}

let tags:[Tag] = [.bold, .italic, .underline].sorted()
print(tags.map {$0.rawValue})

我花了数小时搜索互联网并阅读了文档,但是也许我在找错地方。如何将JS变量 nextIndex 传递到上面的vue数据中?

已编辑 我也尝试过这种方法(在nextIndex之前使用@并在Vue实例外部创建整个URL:

var app = new Vue({
    el: '#root',
    data: {
        url: "{{route('showphoto')}}/{{$photos[nextIndex]->id}}"
    }
});

这给了我完全相同的错误消息:

var key = {{ $photo->id}};
var photos = {!!$photos!!};
var @nextIndex = 0;
for (i = 0; i < photos.length; i++) {
    if(photos[i]['id'] === key && !(i >= photos.length-1)){
        @nextIndex = i+1; // if not the last index, give me the next index
        break;
    } else if(photos[i]['id'] === key && (i == photos.length-1)) {
        @nextIndex = 0; //if this is the last index, give me the first one
        break;
    }
 }

 var url = "{{ route('showphoto') }}/{{ $photos[@nextIndex]->id }}";

var app = new Vue({
    el: '#root',
    data: {
        url: url
    }
});

0 个答案:

没有答案