Tag: angularjs

如何在量角器中为元素存在与否创建条件

我正在使用Protractor JS。 该网站是用Angular JS编写的。 所以我有一个拨动开关。 我注意到,当你关闭或打开时,切换开关的值从true变为false,false变为true。 我正在尝试在Protractor访问我的页面时创建一个条件,当它看到切换开关’关闭’它将打开它’。 如果拨动开关已经“打开”,它将首先将其关闭,然后再将其打开。 我提出了这个代码,但由于某种原因它无法正常工作: if( expect(element(By.id(‘toggle-switch’)).element(By.css(‘[value=”false”]’)).isDisplayed()) ) { element(By.id(‘toggle-switch’)).click(); console.log(‘in the if’) } else{ element(By.id(‘toggle-switch’)).click(); browser.sleep(3000); element(By.id(‘toggle-switch’)).click(); console.log(‘in the else’) } 此代码似乎仅适用于if语句。 出于某种原因,它永远不会去其他地方。 这是我收到的错误: NoSuchElementError:找不到使用locator的元素:By.cssSelector(“[value = \”false \“]”) 那么我试过了 .isPresent()而不是.isDisplayed()我不再收到上述错误,但由于某些原因,当使用.isPresent()时,它总是转到if语句并且只运行那个,而不是else语句。 没有显示错误。 如果有更好的方法请告诉我。 这似乎非常有限,因为无法在此框架中创建适当的条件。

AngularJS和Redactor插件

所以我正在AngularJS的一个新网站上工作,并且喜欢它! 但是,我遇到了一个问题。 我试图在我的textareas中添加一个名为’Redactor’的jQuery插件,但我认为发生的事情是当我初始化插件时,它取代了textarea元素。 这有问题的原因是因为我在文本区域设置了’ng-model’属性,如下所示: 我正在使用AngularJS UI来拾取焦点事件,然后在文本焦点时执行以下代码 $scope.addRedactor = function() { $(‘.redactor’).redactor(); }); 现在我似乎无法获得textarea的值,因为当我尝试访问ng-model’响应’时,它会显示为未定义。 有没有办法在受到Redactor影响后将ng-model属性绑定到textarea? 另外,还有另一种方法可以获得textarea的价值吗?

JSON问题与REST API和特殊字符

所以我试图检索包含许多文本的JSON,然后使用angularJS在UI上显示它。 现在我编写文本(使用java.net.URLEncode)并获得结果。 JSON回应正在转换的文本(抱歉,我无法正确构建问题)为了更好地解决问题,我在这里发布了类似的问题 例如 我有一个文本“我的名字是”“迈克”这是一个get请求的参数,它返回一个JSON。 现在由于“”(引用或任何其他特殊字符),响应是一个无效的JSON。(基本上他在文本的那一点切断了JSON) 为了解决这个问题,我编写了至少返回有效JSON但文本转换为“My + name + is +”+“+ Mike”的文本。 text: java.net.URLEncoder.encode(artifact.text, “UTF-8″) 这是我不想要的UI,我想要原始文本(没有+)。 我想在服务器端这样做。 现在我已经在UI级别解码了文本 decodeURIComponent((text+”).replace(/\+/g, ‘%20’)); 但我假设在文本中替换了所有+但是如果+实际上是文本的一部分,例如。 “我的名字是迈克+森林”。 我希望这更有意义。 Json回应Single Qoute

在angularjs中,jquery的替代方法是什么?

我想从我的应用程序中删除jquery ..但我想在angularjs中替换$ .each …我怎样才能循环dom元素? 在这里,我添加了我的代码..我想将它从jquery转换为angularjs app.directive(‘activeu’, function($location) { return function ($scope, element, attrs) { var menuMain = $scope.$parent.menuMain; var fullpath = $location.path().split(‘/’); var current = fullpath[2]; setTimeout(function() { $(“.nav li a”).each(function() { if ($(this).attr(‘href’) == ‘#!/page/’ + current) { $(this).parent().addClass(‘active’); $(this).closest(‘li.root-li’).addClass(‘active’); if ($(this).closest(‘li.parent’).length > 0) { $(this).closest(‘li.parent’).addClass(‘active’); } } }); $(“.nav li a”).on(‘click’, function() { […]

AngularJS JQuery Ajax表单提交等效

到目前为止,我已经跳进了angularjs和它的精彩。 我一直在通过$ http服务发送AJAX请求。 今天我很震惊地发现没有简单的方法(据我所知)。 通过谷歌和SO进行搜索使我无处可寻找复杂的复杂解决方案。 虽然我现在最终使用JQuery,但我很好奇是否能够发送表单的JQuery ajax真的可用。 这是一个简单的JQuery代码来说明我在说什么 $.ajax({ type: “POST”, url: formUrl, data: formData, success: function(data) { $scope.form = $sce.trustAsHtml(‘Succesfully Registred. You will be taken home in 5 seconds!’); $timeout(function(){ $window.location.href= “#home”; }, 10000); } });

未捕获的ReferenceError:未定义angular – AngularJS无法正常工作

我正在尝试学习角度,我正在努力点击一个简单的按钮。 我按照一个示例,它具有与下面相同的代码。 我正在寻找的结果是单击按钮以引发警报。 但是,按钮单击没有响应。 有人有什么想法吗? My AngularJS App Click Me! var app = angular.module(‘myApp’,[]); app.directive(‘myDirective’,function(){ return function(scope, element,attrs) { element.bind(‘click’,function() {alert(‘click’)}); }; }); {{2+3}} <!– In production use: –>

角度完成后运行Javascript加载所有视图

我正在使用Angular构建一个Web应用程序,我正在尝试找到一种方法,等待所有data-ng-include元素都已经过评估并且包含完成加载。 例如,菜单是一个加载的视图,每个页面的主要内容也是如此,因此至少有两个data-ng-include被评估和加载。 最重要的是,菜单包含嵌套data-ng-repeat ,它构建了我的菜单。 我需要一种方法来启动脚本,所有这些包括它们内部的任何角度函数,并且DOM已经准备就绪。 当Angular完成页面设置时,是否有任何事件被触发? AnguarJS的实现是基本的,我们基本上通过使用data-ng-include将其用于模板化。 每个页面都是一个视图(不是角度视图,只是一个html文件),通过data-ng-include加载,页眉和页脚在其上方和下方。 标题还动态加载包含angular的全局视图(同样不是角度视图)html文件。 到目前为止,菜单是使用AngularJS进行模板化以外的任何操作的唯一方法。 它使用它来创建一个菜单,该菜单使用由JSP动态生成并插入从服务器返回的DOM的JSON对象。 为了让前端人员的生活更轻松,任何类型的重复JavaScriptfunction都被编码到模块中,这些模块在页面加载时检测到,并使用需要附加JavaScriptfunction的元素上的data-features属性动态加载至。 例如,您可能有 。 在页面加载时,检测到具有data-features元素的每个元素,并加载相关的JS模块,在这种情况下,我们将加载/scripts/modules/subMenu.js 。 我需要的是一种延迟运行此特征检测和附件的方法,直到包含或包含其他角度函数的所有元素都在页面上并准备好被操作,特别是因为可能存在具有数据特征属性的元素包括。 其他地方的人曾提到将控制器放在身体上并放置任何一面但是: $scope.$on(‘$viewContentLoaded’, function() { // Init Features Here }); 这没用,所以我在这里寻找其他选择。 我最终在这个问题中使用了Theo的解决方案: 当angular.js完成加载时发送事件

将同位素与AngularJS一起使用(ng-repeat)

我正在尝试使用角度加载div来为同位素提供布局。 出于某种原因,我不能使用ng-repeat来创建div。 当我做类似的事情,它工作正常: [agg.html] myitem [controlers.js] module.directive(‘isoGrid’, function () { return function (scope, element, attrs) { element.isotope({ itemSelector: ‘.item’ }); }; }); module.controller(‘aggViewport’, [‘$scope’, ‘$location’, function ($scope, $location) { $scope.cards = [{ “ID”: “myid”, “class”: “cardListTile”, “badge”: “1” } { “ID”: “myid2”, “class”: “cardListTile”, “badge”: “2” }] }]); 虽然上面的工作正常,但是当我尝试从角度使用ng-repeat时,div似乎变得不可见(它们在dom中,但我看不到它们)。 我曾尝试过同位素(’reloadItems’)和同位素(’reLayout’),但似乎并没有帮助。 [agg.html] myitem 我怎样才能使用ng-repeat?

来自AngularJS的$ success回调函数

我正在调用控制器来获取API值。 如何在$ http方法之外传递数组? 我需要将一个数组pa[]传递给$scope.myData = pa; 。 首先,console.log(pa)打印值[10,20,30,40]。 其次,console.log(pa)清空数组[]。 JavaScript的 function Ctrl($scope, $http) { var url = “https://spreadsheets.google.com/feeds/list/0AsXjbsnPIu06dGswZUV4WX/values?alt=json-in-script&callback=angular.callbacks._0”; var pa = []; $http({ method: ‘JSONP’, url: url }).success(function (data) { for (i = 0; i < data.feed.entry.length; i++) { var entry = data.feed.entry[i]; pa.push(entry.gsx$productivity.$t); console.log(pa); //[10,20,30,40,50] } }); console.log(pa) // [] empty array $scope.myData = […]

使用带有Angular的Jquery UI插件

我想在角度应用程序中使用jquery的UI布局插件。 是否有一个角度指令已经执行此操作,或用于相同的目的?