在开发Vue Web组件时,style它不会应用于Web组件,而是添加到head文档的组件中.这意味着在DOM DOM中忽略该样式.以下是我在main.js中包装Web组件的方法:
import Vue from 'vue';
import wrap from '@vue/web-component-wrapper';
import MyWebComponent from './components/MyWebComponent';
const WrappedElement = wrap(Vue, MyWebComponent);
window.customElements.define('my-web-component', WrappedElement);
Run Code Online (Sandbox Code Playgroud)
同样,样式标记内的任何CSS规则都不会生效.
当我为生产构建时,样式将添加到Web组件中.我使用以下命令进行包装:
vue-cli-service build --target wc --name my-web-component ./src/components/MyWebComponent.vue
Run Code Online (Sandbox Code Playgroud)
有没有办法实现同样的目的vue-cli-service serve?
编辑:示例repo:https://github.com/snirp/vue-web-component
edit2:我觉得我的问题与这个问题密切相关.我无法理解变通方法,我会重视一个更基本的解决方案.
我正在寻找一种模式来获取每个第n项数组的总数.从概念上讲,这就像获取数据表的列总数一样.
var dataRows = [
[10, 11, 12, 13],
[20, 21, 22, 23],
[30, 31, 32, 33]
]
// The outcome should be:
// [ 60, 63, 66, 69]
Run Code Online (Sandbox Code Playgroud)
我在服务器端有一些等效的Python代码,但决定它应该在客户端处理,因此在javascript中.这是等效的Python代码:
[sum(i) for i in zip(*data_rows)]
Run Code Online (Sandbox Code Playgroud)
你会怎么写这个?我确信代码会更长,没有zip,解包和列表理解,但它可以优雅地完成吗?还有扩展JS核心库的库吗?
什么被认为是翻译网站的URL的最佳策略?我经常看到的事情是:
http://example.com/english-slug.html
http://example.com/de/english-slug.html
http://example.com/fr/english-slug.html
Run Code Online (Sandbox Code Playgroud)
这具有(次要)优点,即用户可以通过修改URL手动切换到另一种语言.缺点似乎是URL包含错误语言的slug,每个页面都不是默认语言.我想这会导致SEO惩罚.
另一种方法是翻译slug并可选地省略语言标识符:
http://example.com/english-slug.html
http://example.com/deutscher-slug.html
http://example.com/slug-francois.html
Run Code Online (Sandbox Code Playgroud)
有些语言并没有真正让自己变得"迷茫",比如俄语,汉语和阿拉伯语.你最终会得到毫无意义的音译.
盯着我的代码很长一段时间,我一直遇到同样的错误.有趣的是,我为我的模型的另一部分制作了一组类似的序列化程序,这些工作正常.
这是我不断得到的错误:
/onderhoudapi/conditiedeel/.json处的AttributeError在尝试获取
gebreken序列化程序上的 字段值时出现AttributeErrorConditiedeelSerializer.序列化程序字段可能名称不正确,并且与Conditiedeel实例上的任何属性或键都不匹配.原始异常文本是:'Conditiedeel'对象没有属性'gebreken'.
serializers.py
class GebrekSerializer(serializers.ModelSerializer):
class Meta:
model = Gebrek
fields = ('naam', 'get_type', 'get_omvang_waarde', 'get_intensiteit_waarde', 'get_ernst_waarde')
class ConditiedeelSerializer(serializers.ModelSerializer):
gebreken = GebrekSerializer(many=True, read_only=True)
class Meta:
model = Conditiedeel
fields = ('deel', 'conditiescore', 'gebreken', )
Run Code Online (Sandbox Code Playgroud)
models.py
class Conditiedeel(models.Model):
deel = models.OneToOneField(Deel, null=True, blank=True)
conditiegroep = models.ForeignKey(Conditiegroep)
conditiescore = models.IntegerField(choices=CONDITIE_KEUZES)
#some class methods here
class Gebrek(models.Model):
naam = models.CharField(max_length=80)
omvang = models.IntegerField(choices=OMVANG_KEUZES)
intensiteit = models.IntegerField(choices=INTENSITEIT_KEUZES)
conditiedeel = models.ForeignKey(Conditiedeel)
nengebrek = models.ForeignKey(Nengebrek)
#class methods here …Run Code Online (Sandbox Code Playgroud) 尝试将实例添加到我的某个模型时,管理员会返回此错误.模型本身有一个正确的str()方法,并且还没有实例.还尝试用静态方法替换str()方法或完全删除它.没运气.
该错误似乎指向管理员的历史记录部分出错.Stacktrace指向第33行.
Error during template rendering
In template /Users/snirp/juis/snirpdrive/glotto/venv/lib/python3.6/site-packages/django/contrib/admin/templates/admin/change_form.html, error at line 33
__str__ returned non-string (type NoneType)
23 {% endblock %}
24 {% endif %}
25
26 {% block content %}<div id="content-main">
27 {% block object-tools %}
28 {% if change %}{% if not is_popup %}
29 <ul class="object-tools">
30 {% block object-tools-items %}
31 <li>
32 {% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
33 <a href="{% add_preserved_filters history_url %}" class="historylink">{% trans "History" %}</a>
34 …Run Code Online (Sandbox Code Playgroud) 我正在构建一个可用于设置各种 vuex 属性的组件,具体取决于路由中传递的名称。这是它的天真要点:
<template>
<div>
<input v-model="this[$route.params.name]"/>
</div>
</template>
<script>
export default {
computed: {
foo: {
get(){ return this.$store.state.foo; },
set(value){ this.$store.commit('updateValue', {name:'foo', value}); }
},
bar: {
get(){ return this.$store.state.bar; },
set(value){ this.$store.commit('updateValue', {name:'bar', value}); }
},
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
请注意,我传递this[$route.params.name]给v-model, 以使其动态化。这适用于设置(组件加载正常),但是在尝试设置值时,我收到此错误:
Cannot set reactive property on undefined, null, or primitive value: null
我认为这是因为this内部v-model变得未定义(?)
我怎样才能使这项工作?
我也很想知道为什么这不起作用(编译错误):
<template>
<div>
<input v-model="getComputed()"/>
</div>
</template>
<script>
export default {
computed: {
foo: …Run Code Online (Sandbox Code Playgroud) 在尝试学习Flask时,我正在构建一个简单的Twitter克隆.这将包括用户跟随其他用户的能力.我试图通过SQLAlchemy建立一个关系数据库来允许这个.
我想我需要在用户上自我引用多对多关系.根据SQLAlchemy文档,我到达:
#imports omitted
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///twitclone.db'
db = SQLAlchemy(app)
Base = declarative_base()
user_to_user = Table("user_to_user", Base.metadata,
Column("follower_id", Integer, ForeignKey("user.id"), primary_key=True),
Column("followed_id", Integer, ForeignKey("user.id"), primary_key=True)
)
class User(db.Model):
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
name = Column(String, unique=False)
handle = Column(String, unique=True)
password = Column(String, unique=False)
children = relationship("tweet")
following = relationship("user",
secondary=user_to_user,
primaryjoin=id==user_to_user.c.follower_id,
secondaryjoin=id==user_to_user.c.followed_id,
backref="followed_by"
)
#Tweet class goes here
db.create_all()
if __name__ == "__main__":
app.run()
Run Code Online (Sandbox Code Playgroud)
运行此代码会导致创建数据库时不会出现任何错误消息.然而,简单地省略了将用户连接到用户的整个部分(表).这是User表的定义:
CREATE TABLE user (
id INTEGER …Run Code Online (Sandbox Code Playgroud) 我使用pbr进行包装。它从 git 标签中获取版本并将其应用于 setup.py
现在我还想在包内提供可用的版本。例如有一个__version__属性。我可以pbr为此使用图书馆吗?
还有另一个库:versioneer,它也从 git 标签中提取版本,但这会增加一个额外的要求。我更愿意从pbr
django ×2
javascript ×2
vue.js ×2
admin ×1
arrays ×1
css ×1
flask ×1
models ×1
multilingual ×1
python ×1
sqlalchemy ×1
typeerror ×1
url ×1
url-design ×1
v-model ×1
versioning ×1
vue-router ×1
vuejs2 ×1
vuex ×1