小编prz*_*ekk的帖子

功能编程和DOM操作

在以"功能"方式编写的脚本中,如何以最"纯粹"的方式操作DOM.

例如,如果我只需要更改元素宽度,我应该使用典型语法,如:

document.querySelector(".class").style.width = ...
Run Code Online (Sandbox Code Playgroud)

或写专用功能,如:

function resize(el, w) {
    return el.style.width = w;
}

resize(document.querySelector(".class", 100));
Run Code Online (Sandbox Code Playgroud)

我想,我理解函数式编程的一般概念,但我遇到的所有例子都集中在操作数字或字符串上.操纵DOM被认为是副作用,所以我想知道如何以正确的方式做到这一点.

编辑:

下面更新了代码,问题是,是iit functionall?如果不是,我会感激建议如何重写它.

"use strict";

const outerW = num => 100 * num + "%";
const innerW = num => 100 / num + "%";
const setW = (el, w) => el.style.width = w;

const mask = document.querySelector(".slider__slides__mask");
const slides = document.querySelectorAll(".slider__slide");

setW(mask, outerW(slides.length));
slides.forEach(function(item) {
    setW(item, innerW(slides.length));
});
Run Code Online (Sandbox Code Playgroud)

javascript dom functional-programming ecmascript-6

7
推荐指数
1
解决办法
2409
查看次数

带 BooleanField 的 Flask WTForms FieldList

我想生成带有复选框的文件列表。我尝试使用 FieldList 但它没有按我预期的那样工作。我得到的不是带有指定文件名的复选框,而是带有以包含 FieldList 对象的变量命名的标签的复选框。有什么办法可以解决吗?

应用程序.py:

from flask import Flask, render_template
from flask_bootstrap import Bootstrap
from flask_wtf import FlaskForm
from wtforms import BooleanField, FieldList, SubmitField

app = Flask(__name__)
app.config['SECRET_KEY'] = 'development'
Bootstrap(app)

filenames = ['1.jpg', '2.jpg', '3.jpg', '4.jpg']


class FileListForm(FlaskForm):
    filename = FieldList(BooleanField(), 'Files')
    submit = SubmitField('Submit')


@app.route('/')
def listfiles():
    form = FileListForm()
    for filename in filenames:
        form.filename.append_entry(filename)
    return render_template('index.html',
                           form=form)


if __name__ == '__main__':
    app.run(debug=True, port=5001)
Run Code Online (Sandbox Code Playgroud)

模板/index.html

{% import "bootstrap/wtf.html" as wtf %}
{{ wtf.quick_form(form) }}
Run Code Online (Sandbox Code Playgroud)

包:

click==6.7
dominate==2.3.1 …
Run Code Online (Sandbox Code Playgroud)

python flask python-3.x flask-wtforms

2
推荐指数
1
解决办法
2524
查看次数

无法从ini文件读取布尔值

iniPyQt5应用程序中从文件加载布尔值时遇到问题。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import sys
from PyQt5 import QtCore
from PyQt5.QtCore import QSettings, QVariant
from PyQt5.QtWidgets import (
    QApplication, QCheckBox, QDialog, QGridLayout,
    QLabel, QLayout, QPushButton
)


class Settings(QDialog):
    "settings GUI"

    _settings = None

    def __init__(self):
        super(Settings, self).__init__()
        self._ui()

    def _ui(self):
        self._chk_test = QCheckBox()
        self._chk_test.setText("test checkbox")

        self._settings = QSettings("settings.ini", QSettings.IniFormat)
        self._settings.setFallbacksEnabled(False)

        # load configuration
        self._chk_test.setChecked(
            self._bool(self._settings.value("test_value", True)))

        # save settings
        btn_save = QPushButton("save")
        btn_save.clicked.connect(self._save_settings)

        # setting layouts
        grid_layout = QGridLayout()
        grid_layout.addWidget(self._chk_test, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

python pyqt python-3.x qsettings pyqt5

1
推荐指数
1
解决办法
922
查看次数