是否可以"观察"指令的ui变化?类似的东西:
.directive('vValidation', function() {
return function(scope, element, attrs) {
element.$watch(function() {
if (this.hasClass('someClass')) console.log('someClass added');
});
}
})
Run Code Online (Sandbox Code Playgroud) 我想在我的网站中集成Disqus SSO.
var DISQUS_SECRET = "xyz";
var DISQUS_PUBLIC = "abc";
var disqus_developer = 1;
function disqusSignon() {
var disqusData = {
id: "{{ user.id }}",
username: "{{ user.username }}",
email: "{{ user.email }}"
};
var disqusStr = JSON.stringify(disqusData);
var timestamp = Math.round(+new Date() / 1000);
var message = window.btoa(disqusStr);
var result = CryptoJS.HmacSHA1(message + " " + timestamp, DISQUS_SECRET);
var hexsig = CryptoJS.enc.Hex.stringify(result);
return {
pubKey: DISQUS_PUBLIC,
auth: message + " " + hexsig + " " + timestamp
}; …Run Code Online (Sandbox Code Playgroud) 人们如何编写涉及触发一系列UI事件的角度e2e测试?场景的异步性质似乎使其变得困难.
详细信息:我正在为一个具有大量密钥处理功能的应用程序编写测试,以帮助加快编辑专用表单的速度.我已将键盘扩展拉到了方案dsl(见下文),但只有测试的第一个关键事件才有效.即
keyboard().keydown(null, 'keydown', 40, false, true); // ctrl-down
expect(element('*:focus').text()).toEqual('00:04');
keyboard().keydown(null, 'keydown', 40, false, true); // ctrl-down
expect(element('*:focus').text()).toEqual(''); // but equals 00:04
Run Code Online (Sandbox Code Playgroud)
第二个keydown没有做任何事情,因为它没有找到*:focus来将键路由到(尽管屏幕上有一个).混乱.
angular.scenario.dsl('keyboard', function() {
var chain = {};
chain.keydown = function(selector, keyEvent, keyCode, shift, ctrl) {
return this.addFutureAction("keyEvent", function($window, $document, done) {
var jQuery = $window.$;
var e = jQuery.Event(keyEvent);
e.keyCode = keyCode; // # Some key code value
e.altKey = false;
e.ctrlKey = ctrl;
e.shiftKey = shift;
if (selector == null) selector = '*:focus';
var j = …Run Code Online (Sandbox Code Playgroud) 无论如何我们可以在统计部分下以编程方式获得项目的创建日期吗?谢谢.
我正在尝试创建某种列表来存储数组'table'中的值.(我在这里使用arraylist,但是我应该使用列表吗?)但是,每次我尝试编译时,都会抛出以下错误:
找不到符号符号:class ArrayList location:class players.TablePlayer
代码如下.
public class TablePlayer extends Player {
int[][] table;
ArrayList goodMoves;
public TablePlayer(String name) {
super(name);
}
@Override
public int move() {
int oppLast = opponentLastMove();
int myLast = myLastMove();
if (!isLegalMove(oppLast)) {
return 0; // temporary
}
if (wonLast()) {
table[oppLast][myLast] = 1;
table[myLast][oppLast] = -1;
}
if ((wonLast() == false) && (oppLast != myLast)) {
table[oppLast][myLast] = -1;
table[myLast][oppLast] = 1;
}
for (int i = 0; i < table.length; i++) {
for …Run Code Online (Sandbox Code Playgroud)
我有一个raty div的页面.使用经典代码$('.raty').raty({...});,插件可以在这些现有的div上完美运行.但是当我通过ajax函数加载新的raty div时,新的div"没有变成星星".你能帮我找到我的错吗?
$.ajax({
url: '/ws/player/reviews/p/1',
context: document.body,
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonpCallbackfunction",
success: function(data) {
$.each(data.response.reviews, function( key, value ) {
html = '';
html += '<div class="raty read" data-rating="5"></div>';
$('#reviews').append(html);
});
}
data: {player_id: player_id, from: $('#reviews').data('from')}
}).done(function() {
$(this).find('.raty').raty({
path: '/img/raty/',
readOnly: true,
score: function() {return $(this).data('rating');}
});
});
Run Code Online (Sandbox Code Playgroud)
虽然,如果我尝试$(this).find('.raty').html('blablabla');"blablabla"正确地写在我的所有'.raty'div中.
谢谢你的帮助,
杰里米
我有这个小问题...我有这个asp.net网站.我有一个菜单,都用html和css完成.所以当我点击home时,ajax会将其他内容加载到指定的div元素中.100%工作.
在加载到div元素的内容中,我有一个按钮.一个ASP.NET按钮.
当我点击按钮时,它会给我一个"无法找到资源".错误.
必须有一些我缺少的东西.如果你不明白,那就是ajax:
//Load the Home page on click.
$(document).ready(function () {
$('.home').click(function () {
$("#content").load("html/home/home.aspx");
});
});
Run Code Online (Sandbox Code Playgroud)
现在加载到内容div中的aspx页面显示一个按钮,btnAdd:
<asp:Panel ID="pnlAddNewBlog" runat="server">
<asp:TextBox ID="txtAddNewBlog" runat="server" TextMode="MultiLine"></asp:TextBox>
<br />
<asp:Button ID="btnAdd" runat="server" Text="Add" />
</asp:Panel>
Run Code Online (Sandbox Code Playgroud)
当我单击该按钮时,会出现错误.
我想要实现的是:当用户点击按钮时,txtAddNewBlog中的文本将被添加到数据库中.现在我可以使用C#实现...但是如果这个错误在我的方式中就不行了.有任何想法吗?
我正在尝试排序列表,我从数据库中取出元素但是......
错误:在初始化之前无法调用sortable上的方法; 试图调用方法'刷新'
我的HTML:
<div class="box-body" >
<div ng:controller="menuConfigCtrl">
<ul ui-sortable ng-model="menu" >
<li ng:repeat="item in menu |filter:'all' | orderBy:'order':false" >{{item.Title}}</li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
而我的控制器:
function menuConfigCtrl($location,$scope, menuFactory) {
$scope.menu = [];
menuFactory.getMenu().success(function(data){
$scope.menu = data;
});
}
Run Code Online (Sandbox Code Playgroud)
我的 getMenu()是:
getMenu : function(){
return $http({
url: '/api/menuList',
method: 'GET',
});
},
Run Code Online (Sandbox Code Playgroud)
如果我的菜单不是来自休息服务,而是绑定它,一切都可以正常工作!什么可以?
问题解决了:我导入了angularjs.js两次.
javascript jquery-ui jquery-ui-sortable angularjs angular-ui
我正在尝试获取列表项的偏移量和高度.有了这些,我就在父指令上调用一个函数. 最后,当它们进入视图时,这将是过渡元素的输入和输出.
问题: 因为的ng-repeat(我不知道为什么),el[0].offsetheight和el[0].getBoundingClientRect().top;值是非常随机的; 除非,我$timeout绕过逻辑.我认为这是因为样式有时间渲染?
问题: 如何获得精确的偏移量和高度,无需包裹$timeout或使用$watch.
HTML:
<dt spyed ng-repeat="exp in experiences">
...
</dt>
Run Code Online (Sandbox Code Playgroud)
JS:
app.directive('spyed', function () {
return {
require: '^scrollSpyer',
link: function(scope, el, attrs, ctrl) {
// this value is mostly random after the $first ng-repeat item
var offset = el[0].getBoundingClientRect().top;
// this value is also mostly randome after the $first ng-repeat item
var theHeight = el[0].offsetHeight;
// this fires the expMapper on …Run Code Online (Sandbox Code Playgroud) 以下代码段是否有任何表面上的问题:
<ul id="entry-name" class="breadcrumb">
<li ng-repeat="dir in pathElements()" class="active">
<span ng-show="!$last">
<a href="#!?path={{dir.url}}">{{ dir.name }}</a> <span ng-show="!$first" class="dividier">/</span>
</span>
</li>
<li class="active">{{ pathElements()[pathElements().length - 1].name }}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
用这个js:
$scope.pathElements = function() {
var retval = [];
var arr = $scope.currentPath().split('/');
if (arr[0] == '') {
arr[0] = '/';
}
var url = "/";
retval.push({name: arr[0], url: url});
for (var i = 1; i < arr.length; ++i) {
if (arr[i] != '') {
url += arr[i] + '/';
retval.push({name: arr[i], url: url}); …Run Code Online (Sandbox Code Playgroud)