Tag: angularjs

AngularJS:从控制器访问特定的指令范围

我是棱角分明的新人,如果我错过了什么或者误解了文档,请原谅我。 我有一个指令,它将元素转换为jquery插件 .directive(‘myDir’, function($compile) { return { link: function(scope, element, attributes) { // $(‘.someDiv’).jqueryPlugin(…); element.jqueryPlugin(); var el = $compile(“{{ ‘label’ }}”)(scope); element.find(‘.label’).html(el); } } }) 正如你所看到的,首先我在html元素中创建一个jquery插件(它在内部元素中创建它的dom,包括一些带有标签类的div – 假设它包含一些应该是动态的字符串,并且应该是全局可转换的)然后我替换静态jquery生成的标签插入一个。 我应该能够从控制器管理它。 问题是,我可以在一个控制器中有很多指令,比方说 在指令和jquery运行后,它会给出一些东西,比方说,比方说 {{label|translate}} {{label|translate}} {{label|translate}} {{label|translate}} 如何,从控制器,我可以管理一个特定的指令? 如何访问所选范围的范围? 我认为 // controller $scope.label = “some content”; 将改变所有标签 有没有办法实现这个目标? 或者我应该检讨问题的解决方法? 提前致谢! 编辑 我还将有dom元素,需要从控制器级别附加指令。 他们也应该从这个层面维持。 所以我的想法是提供一个服务,这将是api的某种外观,可以在jquery-plugin’ed dom元素上工作。 所以我想说我需要一些东西 .provider(‘facade’, […]

当属性更改值时,指令不运行链接function

我已经创建了一个指令,用于将qTip2库封装到我的角度应用程序中(如另一个SO问题中所述 )。 我有一个字典,其中包含qTip的不同配置,并且根据我传递给属性cv-tooltip的值,在链接函数的.qtip调用中传递了相应的配置。 这适用于在html中设置的指令(例如,在右侧显示qtip,在左侧显示cv-tooltip =“left”)。 当我从另一个指令将cv-tooltip =“right”的属性值更改为cv-tooltip =“left”时出现问题,当值发生变化时,tooltip指令链接函数不会重新运行,因此qTip不会使用正确的配置更新。 qtip指令如下所示: mainApp.directive(‘cvTooltip’, function () { var optionDictionary = { ‘right’: { position: { my: ‘center left’, at: ‘right center’ }, style: { tip: { corner: ‘left center’, height: 10 } } }, ‘left’: { position: { my: ‘center right’, at: ‘left center’ }, style: { tip: { […]

如何使用AngularJS将点击和双击控件添加到行?

如果我有AngularJS HTML,它创建一个这样的表 : {{ row.id }} {{ row.text }} 我如何添加function,以便单击一行使得该行突出显示,两次单击调用row.id的函数? 有没有一种AngularJS方法可以做到这一点,还是我必须使用jQuery ? 我怀疑这样做的唯一方法是使用jQuery但我觉得我应该先问一下AngularJS问题。 谢谢

需要FineUploader方法uploadStoredFiles才能在继续之前完成

对于一些快速背景,uploadStoredFiles()是FineUploader插件中用于异步将附加文件数据发送到服务器路径的方法。 我也在为我的应用程序使用AngularJS。 我的问题实际上与这里发现的问题非常相似…… jQuery:等待函数完成继续处理? …最大的区别是我无法访问回调函数本身。 此外,我的脚本运行FineUploader作为一个更大的表单的一部分,其中附件是可选的,所以使用FineUploader’完成’回调也没有多大帮助。 这是一个代码示例。 基本上,如果没有附件,那么页面应该重新加载。 如果有附件,则应上传,然后重新加载页面。 if(hasAttachments) { myuploader.uploadStoredFiles(); } //AngularJS call to refresh page $route.reload(); 大多数情况下,页面会刷新自身并且文件在其列表中丢失,直到我稍后再进行额外刷新。 我可以硬编码等待时间,但有些事情看起来效率低下且很邪恶。 欢迎任何建议或解决方案。 我特别喜欢Angular-ish解决方案,但我会采取我能得到的。

存储ng-repeat指令的第一个元素

我是Angular的新手…… 我有一个ng-repeat指令,我想在“全局”变量中存储一个answer属性。 我想要像这样 var buffer = answer.discussionId; if(buffer != answer.discussion){ //do something buffer = answer.discussionId; } 谢谢

Angularjs工厂:传递$ scope,$ route,$ http时出错?

当$scope, $route, $http存在时,为什么我的工厂在下面继续抛出错误? app.factory(“factoryContacts”,function($scope,$route,$http){ return { getContacts: function(){ return $http({ method: ‘GET’, url:’php/listContacts.php’ }).then(function(response) { $scope.contacts = response.data; }); } }; }); 我不能把$scope, $route, $http传递给工厂吗? 我测试了这个基本的,它给了我同样的错误, app.provider(‘helloWorld’, function($scope) { // note $scope is present // In the provider function, you cannot inject any // service or factory. This can only be done at the // […]

Angular $ http.get和jQuery $ .getJSON错误,但URL在自己的选项卡中打开正常

我很难过。 我正在尝试用名字做一个简单的客户查询请求。 jQuery.ajax() (来自控制台)和Angular的$http.get()出错了,但我不知道为什么。 当我在另一个选项卡中打开给这些函数的相同URL时,它会显示预期的JSON响应。 jQuery的 $.ajax(“http://[ip#]:8081/customerservice/customer/search?firstName=John”, { “dataType”: “json”, “success”: function() { alert(“success”); console.log(“jQuery data”, data); }, “error”: function(jqXHR, textStatus, errorThrown) { alert(“error”); console.log(“jQuery jqXHR”, jqXHR); console.log(“jQuery textStatus”, textStatus); console.log(“jQuery errorThrown”, errorThrown); }, “complete”: function(jqXHR, textStatus) { alert(“complete”); console.log(“jQuery jqXHR”, jqXHR); console.log(“jQuery textStatus”, textStatus); } }); 结果 :错误和完成警报触发。 textStatus是“error”, errorThrown是一个空字符串,jqXHR包含 readyState 0 responseText “” […]

如何在angularJs中使用jquery columnize

我想使用jquery的columnize插件在我的AngularJS应用程序中设置列。 我超级天真的做法是: .directive(‘columnize’, function() { return { restrict: ‘A’, link: function(scope, iElement, iAttrs) { $(iElement).columnize({columns: 2}); } }; }); 使用此HTML代码: {{question.text}} {{choice}} 但问题是在元素内部使用ng-repeat。 columnize destroy是dom然后ng-repeat抛出一个exception,它不能insertBefore null元素。 我觉得我的做法是错的。 有什么建议?

如何绑定ng-repeat中动态命名输入的数据

我的目标是能够将数据从表行复制到另一个表行。 如果2015年的数据从2016年开始没有变化,则用户需要快速将值复制到2016年输入字段中。 为这些表单动态创建模型。 您在此图像中看到的数据将分配给一个部分。 输入模型名称为“price_min + section_id”,price_max + section_id’等…历史模型没有将section_id添加到模型名称的末尾。 所以需要一个我需要帮助的映射function。 我需要将历史值映射到当前模型约定并使用值更新视图。 目前我有一个点击function,带来匹配的部分历史记录。 这是一个看起来像的屏幕截图。 在同一个函数中,我有2016年的对象数组与当前的模型命名约定。 我需要将历史值复制到inputArray中。 我怎么做这个,我不知道? 我完全控制了它的工作原理。 在plunker你会看到我是如何做到这一点的。 如果我需要改变其他东西来使这项工作,那就没关系。 javascript,jquery,lodash,linq.js目前正在项目中使用。 工作的plunker 工作plunker $scope.copyHistoryData = function (section) { var selected = Enumerable.From(sectionsHistory).Where(“x => x.section_id == ‘” + section.section_id + “‘”).ToArray(); selected = selected[0]; var inputArry = section.sectionInputs; };

Grunt文件没有加载ngCordova和jquery

我有以下咕噜声的任务: // Generated on 2016-04-28 using generator-angular 0.15.1 //cwd – All src matches are relative to (but don’t include) this path. ‘use strict’; // # Globbing // for performance reasons we’re only matching one level down: // ‘test/spec/{,*/}*.js’ // use this if you want to recursively match all subfolders: // ‘test/spec/**/*.js’ module.exports = function (grunt) […]