我包括一个小提示,显示当你将焦点应用于元素时会发生什么,它将焦点设置为输入的"日期"部分,但我找不到有关DOM如何呈现和识别日期的每个部分的任何文档.
如何以编程方式聚焦input[type="date"]元素的月/年部分,是否有关于如何在DOM中呈现此类元素的任何文档?
https://jsfiddle.net/uytdhqax/
<input id="dob" type="date" />
Run Code Online (Sandbox Code Playgroud)
document.getElementById('dob').focus()
Run Code Online (Sandbox Code Playgroud) 根据角度文档 https://docs.angularjs.org/api/ng/directive/ngRepeat#animations
".enter - 将新项目添加到列表中或在过滤器后显示项目时
.leave - 从列表中删除项目或过滤项目时"
但是,当我从数组中获取.push({})或.splice(-1,1)时,这些类都不会添加到ng-repeat中.有什么问题?
<div ng-controller="MyCtrl">
<button ng-click="addLine()">
add
</button>
<button ng-click="removeLine()">
remove
</button>
<div ng-repeat="line in lines">
<div class="preview">{{$index}}</div>
</div>
</div>
var myApp = angular.module('myApp', ['ngAnimate']);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope) {
$scope.addLine = function(){
$scope.lines.push({})
}
$scope.removeLine = function(){
$scope.lines.splice(-1, 1)
}
$scope.lines = [{
text: 'res1'},
{
text: 'res2'}];
}
Run Code Online (Sandbox Code Playgroud)
正如Ted在他的回答中指出的那样,需要为.ng-enter/.ng-leave提供实际的css样式,否则ngAnimate模块不会将.ng-enter类添加到DOM元素
更清楚的是,我现在并不关心实际制作动画.这里的问题是.ng-enter类实际上并没有应用于元素的class属性,除非你有.ng-enter的css样式
WORKING PLUNKER http://plnkr.co/edit/TqpdIy6syikBhAeb5Kw3?p=preview
免责声明我不赞同使用eval,我在编写代码时不使用它.
我在一个遗留项目上分配逻辑,并且在eval中遇到了一些非常奇怪的行为,并且想知道为什么会出现这种行为的原因.
var baz = function(cb) {
cb('asdf');
}
function foo(qux, callback) {
setTimeout(function() {
// eval(callback('asdf')); // works
// eval(baz(callback)); // works
// eval(qux + "(" + callback + ")"); // resolve is undefined
});
}
function bar() {
return new Promise((resolve, reject) => {
try {
foo('baz', function(response){
resolve(response);
});
} catch (e) {
reject(e);
}
});
}
function init() {
bar()
.then(response => {
console.log(response)
})
.catch(e => console.log(e));
}
init();
Run Code Online (Sandbox Code Playgroud)
我写了三个使用eval的不同方法的例子,在函数中注释了foo
第三个例子不起作用.这是我关心的例子,因为它是我们遗留代码的工作方式.我知道还有其他方法可以解决这个问题.我的解决方案是重写函数而不是使用eval. …