Tag: angularjs

无法通过单击重新打开下拉列表

我有一个由angularjs和bootstrap制作的网页,但不是ui-bootstrap 。 有一个drop-down list和一个iframe 。 问题是当下拉列表打开时,单击iframe不会自动关闭下拉列表。 我按照这个答案添加了以下内容: $(window).on(‘blur’,function() { $(‘.dropdown-toggle’).parent().removeClass(‘open’); } ); 现在,单击iframe会关闭下拉列表。 但是,在关闭之后,单击下拉按钮将不会重新打开列表; 我们必须单击iframe以外的其他位置或单击下拉按钮一次,然后再次单击下拉按钮打开列表。 很抱歉,我无法在游乐场重现问题,但似乎是“只有第二次点击才能打开下拉列表”这一常见问题。 我试图删除data-toggle=”dropdown” ,但它没有帮助。 有谁知道我可以尝试解决这个问题?

如何使用UI-Router仅更新命名视图

我正在创建一个网络应用程序,以帮助学生在科学,历史和数学。 当你第一次登陆网站时,我有一个家/登陆页面。 点击开始后,我将路由到/考试/说明。 我的每个步骤说明,数学和科学都是我加载到ui-view=”exam-detail”模板。 目前,当我通过科学导航和指导时,整个ui-view会加载。 理想情况下,我只想要一个用于分页的区域和一个主题区域,并且只希望用正确的模板更新ui-view=”exam-detail” 。 我根本没有使用UI-Router,非常感谢任何帮助。 的index.html 状态考试> exam.html route.js (function() { ‘use strict’; angular .module(‘studentPortal’) .config(routeConfig); function routeConfig($stateProvider, $urlRouterProvider) { $stateProvider .state(‘home’, { url: ‘/’, templateUrl: ‘app/main/main.html’, controller: ‘MainController’, controllerAs: ‘main’ }) .state(‘exam’, { url: ‘/exam/:step’, abstract: true, templateUrl: ‘app/state-exam/exam.html’, controller: ‘ExamController’, controllerAs: ‘examController’, }) .state(‘exam.instructions’, { url: ‘/instructions’, views: { ‘exam-pagination’:{ […]

AngularJS – 可拖动和多个连接的可排序(jQuery UI + angular-common)

我正在尝试扩展angular-common的优秀dragdrop模块 ,它可以处理连接到单个可排序的可拖动模块 。 (angular-common的dragdrop模块后面的原始SO线程就在这里 。) 我设法连接两个sortables,并为每个sortables删除一个draggable,并在sortables中重新排列工作正常(范围项数组按预期更新)。 实际上UI部分工作正常,但是当我将列表项从一个可排序项拖到另一个时,我似乎无法弄清楚如何更新Angular范围中的项数组。 厂: .factory(‘DragDropHandler’, [function() { return { dragObject: undefined, addObject: function(object, objects, to) { objects.splice(to, 0, object); }, moveObject: function(objects, from, to) { objects.splice(to, 0, objects.splice(from, 1)[0]); } }; }]) Droppable(可排序)指令: .directive(‘droppable’, [‘DragDropHandler’, function(DragDropHandler) { return { scope: { droppable: ‘=’, ngUpdate: ‘&’, ngCreate: ‘&’ }, link: function(scope, element, […]

使用FileSaver.js保存excel文件

我试图将数据导出到角js中的excel 1)用户单击按钮2)$ scope.myArray中的数据保存到excel文件。 我试过了 var blob = new Blob($scope.myArray , { type: “application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8” }); saveAs(blob, “Report.xls”); }; 它会提示打开excel文件。 但每当我尝试打开它时,它表示文件格式或文件扩展名无效。 任何帮助!

Javascript – 获取上个月的日期

如果我有一个返回日期的变量,格式为dd MMM yyyy,那么2014年8月28日,我怎样才能得到上个月的日期。 我可以通过以下方式修改月份: $scope.DateMapping = function (months) { var myVariable = “28 Aug 2014” var makeDate = new Date(myVariable); prev = new Date(makeDate.getFullYear(), makeDate.getMonth()+1, 1); }); 基本上,这是在本月增加一个..但我怎么能解释多年,所以如果当前日期是2014年12月12日,那么之前的日期是2013年1月12日? 我的应用程序使用AngularJS可以使用filter。 更新: var myVariable = “28 Aug 2014” var makeDate = new Date(myVariable); var prev = new Date(makeDate.getFullYear(), makeDate.getMonth()+1, makeDate.getMonth()); console.log(myVariable) console.log(makeDate) console.log(prev) Output: 28 Aug 2014 […]

ng-repeat排序在jQuery中引发exception

我有一个由ng-repeat创建的行的表。 表头具有ng-click,用于设置排序的谓词(该函数还确定方向,asc / desc)。 排序工作正常,但由于某种原因,每次我更改谓词和排序时,我都会从jQuery中获得exception。 这是我正在做的一个更好的例子: http ://plnkr.co/edit/qfNcm9RPQSsNgqmm3TYS?p = preview 正如您在plnkr中看到的那样,ng-repeat非常简单。 我们项目中的ng-repeat是相似的,而不是更复杂。 这实际上发生在我们代码中的许多地方,我们在它们之间使用不同的排序方法,但它们仍然受到影响。 可以单击表标题以对项目进行排序。 那个plunkr没有出现问题。 即使排序在我的页面上工作,它也会打破页面上的其他内容(就像一个光滑的轮播控件)。 例外是在jquery.js的第1430行(通过包括Sizzle.js的谷歌CDN的版本2.1.1)。 发生exception的方法是Sizzle.attr。 它看起来像是在循环遍历使用ng-repeat创建的所有元素,并从中获取属性值。 当它到达“结束ngRepeat:AllContests | orderBy:sort:ReverseSort中的竞赛”注释时,会发生exception,表示ng-repeat部分的结束。 具体来说,当我尝试在元素上使用getAttribute()时,我得到’Uncaught TypeError:undefined不是函数’。 return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; 现在,我可以拉jquery,将它添加到我的项目编辑它,以便它评估elem.nodeName ==“#comment”,并在这种情况下返回null。 我更愿意知道我做错了什么,或者是否有更好的方法。 否则,是否有一种方法可以覆盖该方法并在不编辑jquery库的情况下提供我自己的方法? 编辑 以下是操作中的问题示例: https […]

几秒后,角度引导弹出隐藏

这是我的HTML代码: 单击该图标时,将按预期打开弹出窗口。 只需单击图标即可关闭弹出窗口。 我希望在几秒钟后自动关闭popover。 这是我的javascript代码 – 不起作用: $(‘.pop’).popover().click(function () { setTimeout(function () { $(‘.pop’).popover(‘hide’); }, 4000); }); 跑步的时候 $(‘.pop’).popover() 在FF调试器上我得到: typeError: undefined is not a function 请帮忙 :)

AngularJS无法使用MVC部分视图

我有一个奇怪的问题。 我在我的项目中使用AngularJS。 我有一些部分视图,我有不同的AngularJSfunction实现。 我通过Ajax调用加载所有部分视图。 Ajax调用确实加载了容器中的局部视图,但其AngularJSfunction不起作用。 我注意到当我通过CDN引用AngularJS然后它可以工作,但是当我将CDN JS复制并粘贴到我的本地js文件中时,它却没有。 请说明问题所在。 这是代码: 部分视图: ID: Name: Add Employee Remove Employee Employee id is: {{employee.id}} Employee name is: {{employee.name}} var employees = [{ name: ‘ABC’, id: ‘1’ }, { name: ‘XYZ’, id: ‘2’ }, { name: ‘KKK’, id: ‘3’ }]; function EmployeeController($scope) { $scope.employees = employees; $scope.addEmployee = function () […]

为什么jQuery的承诺有一个done(),但Mozilla记录的Javascript承诺不是? 如果我想在JS中有一个done()怎么办?

Mozilla的JavaScript文档的Promises(参见API页面 )和jQuery的Promises(参见API页面 )之间有什么区别? Mozilla的承诺似乎只有两种方法:然后捕获。 jQuery的承诺似乎有更多的方法,包括:then,done和fail。 ( 从这里 ) 为什么Mozilla上的JS API没有done() ? 如果我想在JavaScript中使用done()function怎么办? 我该怎么办?

使用AngularJS和指令的初学者问题 – 包装jQuery组件

首先,我应该提到我正在努力转向客户端编程。 我对js很新。 我之前的经历主要是在C和一些assembly。 几年前我还做了一些非常简单的PHP,当时它还是4.0。 所以简而言之,是javascript的新手,但我还是把它放了一下。 我做了很多搜索和潜伏,但未能纠正我的问题。 我正在弄清楚AngularJS的一些基础知识并且它非常好,但我很难理解指令的工作方式以及如何从自定义控件访问数据。 长话短说我试图用angularjs为bootstrap工作做一个自定义控件,这样我就可以在表单中正确使用它了。 这是控件: http : //tarruda.github.com/bootstrap-datetimepicker/ 我有一些其他的控件,我想要工作,但我想如果我可以得到这一个我可以很容易得到其他人。 这是我在这一点上的基本框架的链接: http : //jsfiddle.net/uwC9k/6/ 首先,我试图在模板工作后如何初始化控件(我认为,此时我几乎都做了) link: function(scope, element, attr) { attr.$observe(‘dpid’, function(value) { if(value) { $(‘#’ + scope.dpid).datetimepicker({ language: ‘en’, pick12HourFormat: true }); } 当我把它放在link指令中时,它什么也没做。 我甚至没有看到任何错误。 scope.dpid确实显示了控件的ID,所以我认为它会起作用。 但是唉,我对javascript的了解,告诉我,我不在范围之内,或者是一些无法访问元素的废话。 一旦我开始这样做,我不确定如何以表格forms访问这些数据。 任何帮助是极大的赞赏。 更新基本位工作,现在我需要知道如何将新控件中的数据导入我的控制器。 这是更新的新jsfiddle的链接。 http://jsfiddle.net/tmZDY/1/ 更新2我想我对如何使这些数据可访问有了一个想法,但是我对javascript的了解不足让我再次干涸。 当我创建对象时,我就这样做了。 var elDatepicker = element.datetimepicker({ language : ‘en’, […]