Bower使我能够使用以下语法指定包的版本要求:
"dependencies": {
"<name>": "<version>",
},
Run Code Online (Sandbox Code Playgroud)
但我一直无法找到用于该语法的语法<version>.我知道我可以指定版本:
">1.0.0"">=1.0.0""1.0.0 - 2.0.0".我也知道有一个包含代字号的通用版本语法:"~1.0.0".但我不确定它是什么意思,是否与它相同"=1.0.0".
我也有兴趣知道我是否能够指定多个非连续版本,例如完全1.0.3加上大于1.5.0等的版本等...
在Firefox 3和Google Chrome 8.0中,以下工作正常:
<style type="text/css">
span:before { content: 'span: '; }
</style>
<span>Test</span> <!-- produces: "span: Test" -->
Run Code Online (Sandbox Code Playgroud)
但是当元素是<input>:
<style type="text/css">
input:before { content: 'input: '; }
</style>
<input type="text"></input> <!-- produces only the textbox; the generated content
is nowhere to be seen in both FF3 and Chrome 8 -->
Run Code Online (Sandbox Code Playgroud)
为什么它不像我预期的那样工作?
通常情况下,当我们想要DIVs连续使用多个时float: left,我现在会发现它的诀窍display:inline-block
示例链接在这里.在我看来,这display:inline-block是一个更好align DIVs的连续方式,但有任何缺点吗?为什么这种方法不那么流行float呢?
我试图通过试验他们的一个基本气泡图来学习D3 .第一项任务:弄清楚如何拖动气泡并让它在被拖动时成为最顶层的物体.(问题是让D3的对象模型映射到DOM上,但我会到达那里......)
要拖动它,我们可以使用它们提供的代码简单地调用d3的拖动行为:
var drag = d3.behavior.drag()
.on("dragstart", dragstart)
.on("drag", dragmove)
.on("dragend", dragend);
Run Code Online (Sandbox Code Playgroud)
效果很好.拖得好.现在,我们如何让它成为最顶级的项目?在这里搜索"svg z-index",很快就会发现改变索引的唯一方法是在DOM中进一步向下移动一个对象.好.它们并不容易,因为单个气泡没有ID,但是在控制台上乱搞,我们可以找到其中一个气泡对象:
$("text:contains('TimeScale')").parent()
Run Code Online (Sandbox Code Playgroud)
我们可以将它移动到包含svg元素的末尾:
.appendTo('svg')
Run Code Online (Sandbox Code Playgroud)
执行此操作后拖动它,它是最顶层的项目.到目前为止,如果你完全在DOM中工作那么好.
但是:我真正想做的是在拖动给定对象/气泡时自动发生这种情况.D3提供了一个模型dragstart()和dragend()函数,它们允许我们在拖动过程中嵌入一个语句来完成我们想要的操作.D3提供的d3.select(this)语法允许我们访问您当前正在拖动的对象/气泡的d3对象表示.但是我如何干净地将那个大型数组转换为对我可以与之交互的DOM元素的引用 - 例如 - 将其移动到svg容器的末尾,或者在DOM中执行其他引用,例如表单提交?
我正在使用以下代码片段,最终结果是一个数字349.我该如何格式化$349.00?我以为formatNumber()会工作吗?我究竟做错了什么?javascript运行一系列计算,然后显示净总计,税金和总计.对于净总额和税金,我希望看到$和两位小数.
我希望得到下周一或周四的日期(如果是周一或周四,则为今天).由于Moment.js在星期日 - 星期六的范围内工作,我必须在当天计算并根据以下计算下周一或周四:
if (moment().format("dddd")=="Sunday") { var nextDay = moment().day(1); }
if (moment().format("dddd")=="Monday") { var nextDay = moment().day(1); }
if (moment().format("dddd")=="Tuesday") { var nextDay = moment().day(4); }
if (moment().format("dddd")=="Wednesday") { var nextDay = moment().day(4); }
if (moment().format("dddd")=="Thursday") { var nextDay = moment().day(4); }
if (moment().format("dddd")=="Friday") { var nextDay = moment(.day(8); }
if (moment().format("dddd")=="Saturday") { var nextDay = moment().day(8); }
Run Code Online (Sandbox Code Playgroud)
这有效,但肯定有更好的方法!
redux-form是一个非常引人注目的库,用于在反应应用程序中为表单提供redux绑定,这应该是非常方便的.不幸的是,使用库自己的例子,我实际上没有绑定任何东西,这非常方便.
我试图利用项目网站上的示例代码,并发现多个障碍,尽管试图忠实地再现它.我在哪里误解了这个API?自编写演示代码以来API是否已移位?我错过了一些关键且明显的redux知识吗?
问题1:handleSubmit方法的签名应该是handleSubmit(data).但handleSubmit目前只接收来自提交操作的React syntheticEvent,而且没有数据.(实际上,使用as-written的示例是发送两个单独的事件,似乎是因为onSubmit表单上的堆叠操作和onClick按钮上的.)数据应该来自哪里,为什么我没有通过它处理程序?
问题2:fields必须在父表单上定义一个关键对象,并将其作为表单的prop提供.不幸的是,该fields对象的形状在文档中没有解释,也没有在目的中解释.它本质上是最初的"状态"对象吗?redux-form的简单对象容器在运行时用于出错等?我已经通过将道具匹配fields到字段名称来阻止错误connectReduxForm,但因为数据没有绑定,我假设它不是正确的形状.
问题3:字段应该是自动绑定到处理程序onBlur和onChange,让他们适当地更新存储.那永远不会发生.(我们可以看到感谢Redux开发工具.但是,handleSubmit成功调度了这个initialize动作,这表明存储,减速器和其他基本管道都在工作.)
问题4:validateContact在init上触发一次,但从未再次触发.
遗憾的是,这对于一个简单的小提琴来说太复杂了,但整个仓库(它只是基本的ReduxStarterApp,再加上这种形式的POC)可以在这里找到.
而且,这是外部组件:
import React from 'react';
import { connect } from 'react-redux';
import {initialize} from 'redux-form';
import ContactForm from '../components/simple-form/SimpleForm.js';
const mapStateToProps = (state) => ({
counter : state.counter
});
export class HomeView extends React.Component {
static propTypes = {
dispatch : …Run Code Online (Sandbox Code Playgroud) 当我在React-native中使用Image组件时,当我将图像的路径/源声明为内联字符串时,它可以正常工作:
<Image
style={styles.img}
source={require('mypic.png')}
/>
Run Code Online (Sandbox Code Playgroud)
但是当我将路径定义为这样的变量时:
var img = 'mypic.png';
<Image
style={styles.img}
source={require(img)}
/>
Run Code Online (Sandbox Code Playgroud)
......它不起作用.错误消息msg是"错误:未知命名模块'mypic.png'"
我有很多图像,我需要动态地要求它们.编写手动导入语句有太多要求逐个使用它们.
即使使用像这样的简单切换,效率也会低得多:
var icon = this.props.active ? require('./my-icon-active.png') : require('./my-icon-inactive.png');
Run Code Online (Sandbox Code Playgroud)
人们通常如何解决变量图像的动态加载?
我使用AngularJS 1.0.7编写了一个应用程序.我想迁移到AngularJS 1.2.什么是迁移路径(迁移时我可能需要解决哪些问题)?
我需要能够暂时保留尚未完全验证的数据,然后在我准备将其永久化时执行验证.但Angular正在阻止这一点.
我有一张表格.用户可以saveDraft()在表单的早期版本上保留到服务器.然后,当用户准备好时,他们可以submit()使用不同标志持久保存的表单,从而开始实际处理该数据.
我遇到的问题是使用Angular的内置验证.当用户将某些数据输入到带有验证的输入中时,该数据将缓存在$viewValue属性上.但是如果验证失败,它永远不会复制到$modelValue属性,这是对$scope我绑定输入的实际属性的引用.因此,"无效"值将不会持久存在.
但我们需要坚持下去.当他们提交()时,我们将处理强制用户以后更正其验证失败的问题.此外,我们也没有办法知道用户是否会saveDraft()或submit()在视图/控制器的特定实例,所以我们不能设置的意见和验证不同事前.
我的想法是,我们需要以某种方式迭代表单元素并让Angular以某种方式让数据通过.但我找不到一种灵活且可扩展的方式.
我已经尝试过设置$scope.formName.inputName.$modelValue = $scope.formName.inputName.$viewValue,但这似乎只会让众神感到不安,因为这两个值都是无效的.
我尝试过使用$scope.formName.inputName.$setValidity('', true),但这只会更新UI状态.它永远不会触及$modelValue.
我可以成功使用,$scope.model.boundPropertyName = $scope.formName.inputName.$viewValue但这感觉非常迫切,并且不允许boundPropertyName和的标识符之间存在任何差异inputName.换句话说,您需要为所有表单控件提供单独的函数,或者您需要依赖命名约定.两者都是超脆的.
那么......我怎样才能$modelValue更新优雅呢?和/或者,是否有另一种更好的方法来获得相同的结果,有时候我可以坚持验证,有时可以坚持下去?
我正在考虑的其他选择,但不满意:
$modelValue无论其有效性如何.但是当应该有更优雅的路径时,这会破坏框架.(侧注:Angular似乎是根据验证器在两个方向上过滤数据.如果你在模型上为'1234'的formData.zip设置了一个默认值,这个字符不足以验证,Angular不会'甚至展示它.它永远不会达到最初$viewValue.)