Dev_Work
(Aleksandr)
1
create-account.hbs
{{#if userFields}}
<div class='user-fields'>
{{#each userFields as |f|}}
{{user-field field=f.field value=f.value}}
{{/each}}
</div>
{{/if}}
js
var siteSettings = Discourse.SiteSettings;
console.log(siteSettings.forum_name);
complete = $(".user-field-" + siteSettings.forum_name);
https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/controllers/create-account.js.es6#L239-L245
如何检查该字段?
{{#if f.field.name == complete }} {{! 不起作用 }}
正确
{{/if}}
Dev_Work
(Aleksandr)
2
为 create-account.hbs 设置输入
var siteSettings = Discourse.SiteSettings;
$('.control-label').each(function() {
if ($(this).text().trim() === siteSettings.forum_name) {
const uuid = 'lp' + (() => ([1e7] + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)))();
var id = 'user-' + $(this).parent().attr('id');
var input = $('#' + id);
input.val(uuid);
// $(this).parent().hide()
}
});
看起来像这样
Rails.logger.warn(“#{params}”)
看起来像这样
"user_fields" => <ActionController::Parameters {"1" => "true", "2" => ""}>
“2” => “”
第二个字段在哪里?
这不起作用,因为您无法在模板中执行实际的逻辑计算。这需要在对应的 JavaScript 中通过计算属性来处理。请务必阅读官方 Ember 指南(请确保选择与 Discourse 相同的版本),并查看此处许多热门 #plugin 中的代码以获取示例。
Dev_Work
(Aleksandr)
6
你好,我已经知道如何在控制器中覆盖动作了。
示例
import CreateAccount from 'discourse/controllers/create-account';
export default {
name: 'Create-Account-Popup',
initialize: function () {
CreateAccount.reopen({
actions: {
createAccount() {
// 我的代码
}
}
});
}
如何添加你的 @discourseComputed?
我按照示例操作,但不起作用
export default {
name: 'Create-Account-Popup',
@discourseComputed()
ldapForgotPassword() {
console.log('forgot!!');
return this.siteSettings.forum_login_popup_use_ldap;
},
Dev_Work
(Aleksandr)
7
通过 @computed 触发
PreferencesAccount.reopen({
@computed
ldapForgotPassword() {
console.log('忘记密码!!');
return this.siteSettings.forum_login_popup_use_ldap;
},
你应该使用这个来避免浏览器警告。
这只是一个不同的导入方式:
import discourseComputed from "discourse-common/utils/decorators";