我目前正试图围绕如何扩展vuejs实例.具体来说,我想分离一个实例,以便我可以重用实例的基础(元素和数据).我目前有不同的(laravel/blade)视图用于添加和编辑项目(域),我想在这两者之间共享一个vuejs实例,但我不想在两个地方拥有相同的代码(基础).
基本上,我正在寻找的是以下内容:
<script type="text/javascript">
var vue = new Vue({
el: '#domain',
data: {
form: {
'name' : '',
'git_repo' : '',
'auto_deploy' : '',
'create_db' : ''
},
ajaxResponse : ''
}
});
</script>
<script type="text/javascript">
Vue.extend('domain_methods', {
methods: {
postDomain: function () {
this.$http.post('{{ route('domain.store') }}', function (data, status, request) {
this.$set('ajaxResponse', data);
}, {
data: this.form
} ).error(function (data, status, request) {
this.$set('ajaxResponse', data);
});
}
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
但这显然不起作用.我只想在#domain元素中使用postDomain()方法,而不是在初始创建实例时编写方法.
提前致谢!
我再次与EmberJS中的适配器挣扎.这次它与使用ember-data-url-templates的嵌套api请求有关.
首先,相关代码:
// /app/application/adapter.js
import DS from 'ember-data';
var AppAdapter = DS.JSONAPIAdapter.extend({
host: 'http://coursedev.api'
});
export default AppAdapter;
// /app/router.js
import Ember from 'ember';
import config from './config/environment';
const Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('courses');
this.route('course', { path: '/course/:course_id' });
this.route('lesson', { path: '/course/:course_id/lesson/:lesson_id' });
});
export default Router;
// app/course/model.js
import DS from 'ember-data';
export default DS.Model.extend({
order: DS.attr('number'),
title: DS.attr('string'),
body: DS.attr('string'),
lessons: DS.hasMany('lesson')
});
// app/lesson/model.js
import DS from 'ember-data';
export default DS.Model.extend({
order: …Run Code Online (Sandbox Code Playgroud)