问题标签 [angular1.6]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
41 浏览

angularjs - 使用 Typescript 在 Angular 1.5.x 中继承工厂

我正在尝试将 Typescript 引入我现有的 Angular 1.5.x 应用程序。目前我们没有权限将完整的应用程序迁移到 Angular 2。为了获得 ES6 的好处,我正在尝试使用 TypeScript。我现在遇到了一个问题。我们有类似的模型,这些模型是BaseComponentModel由等派生的。这些模型被注入到渲染组件的指令中,并且这些模型也在 AngularJS 中注册为工厂。FormModelGridModel

我可以成功地将我的移植BaseComponentModel到 TypeScript,如下所示,

BaseComponentModel.ts

BaseModule.ts

现在我需要将基础模型导入到我FormModel的继承中。

表单模型.ts

在运行时编译类型期间我没有看到任何问题我收到以下错误,

错误 TS2507:类型“BaseComponentModel”不是构造函数类型。

我该如何解决这个错误?

0 投票
3 回答
135 浏览

javascript - Angular 1.x - $scope 的顺序是怎么回事?

我有一个控制器,我需要使用 ajax 加载内容。在加载时,我希望在此期间出现一个微调器。代码如下所示:

以及对应的js:

但是,当我单步执行代码时,微调器的 UI 不会出现在我期望它出现的位置/时间。

我曾尝试单步执行代码,但对正在发生的事情一无所知——而且我确信我误解了事件循环中发生的事件顺序以及角循环在所有这些中的作用。

是否有人能够解释为什么将微调器设置为出现在承诺的方法中而不是我设置的位置$scope.isLoadingContent?它实际上并没有被设置,而是在事件循环的消息队列中排队?

- - - - - - 编辑 - - - - - -

我相信我遇到了关于发生了什么的解释。很大程度上要感谢@jcford 和@istrupin。

所以原始帖子中缺少一点花絮,触发承诺调用的事件和微调器更新实际上是基于一个$scope.$on("some-name", function(){...})事件 - 实际上是在我当前控制器范围之外触发​​的点击事件。我相信这意味着 $digest 循环不像通常那样工作,因为事件起源是在哪里触发的。因此,函数中的任何更新$on都不会像通常那样调用 $apply/$digest,这意味着我必须专门进行 $digest 调用。

奇怪的是,我现在意识到在 中$q.all(),它必须调用$apply,因为在调试时,我看到了我所期望的 DOM 更改。嗯。

tl;博士-打电话$digest

0 投票
2 回答
716 浏览

angularjs - Angular 1.6 和多个模块:在模块和组件之间共享全局变量

我正在使用 Angular 1.6.7。我在我的应用程序中创建了多个模块。如何将父模块(myApp)中定义的常量(例如“rootURL”)传递给子模块(childApp)?更具体地说,我需要将“rootURL”的值分配给 childApp 组件的 templateUrl,这样我们就不必为每个模块硬编码根目录。我想我知道如何在控制器内共享变量,但不知道如何在组件的定义中做到这一点。

这是一个用于演示的Plunker。在 app.module.js 我定义了一个常量“config”。当我为“child”(components/child.component.js)定义组件时,我该怎么做,而不是templateUrl:“components/child.html”,我可以说类似“config.rootURL + child.html” “?我们不必使用常量。

先感谢您。

0 投票
1 回答
192 浏览

javascript - Umbraco 7 - 语法帮助 - JS 还是 Angular?- 循环通过 Umbraco 属性编辑器

我正在创建一个自定义部分,并且在我的一个控制器中,我成功地创建了一个 propertyeditor 对象的数组。

在我看来,这是有效的

但是我真正想要做的是看透,现在我知道我可以如何做到这一点是 JS for 循环,但我很确定必须有一种角度的方式来做到这一点,我仍然掌握 Angular 所以请原谅我的无知。

0 投票
1 回答
873 浏览

angularjs - Angular 1.6 + 组件:在模块之间传递常量

如何将常量的值从一个模块传递到另一个模块?先感谢您。这是Plunker演示。常量“config”在 app.module.js 中定义,我希望能够将它传递给 child.module.js 以定义常量“childConfig”。现在控制台说“配置未定义”。

非常感谢您提前。

0 投票
1 回答
50 浏览

angularjs - 为什么当我有断点时我的 angular1.6 控制器无法正确绑定

当我在没有断点的情况下运行代码时,我得到了这个 在此处输入图像描述

bindingsoptionsDataoptionsSelectedallSubtypesSelected 正在按预期工作。但是由于某种原因,当我在代码中放置断点(在上面的代码中指定)时,我得到以下

在此处输入图像描述

我什么都没改变!我的代码不起作用,因为当我调试代码时 $ctrl.optionsData 未定义,但我不知道为什么。

0 投票
1 回答
678 浏览

angularjs - Cannot set a form field to dirty

I've looked for an answer to this and come across several posts, but none of them are working for me.

I want to do something simple. I have a button that is invisible until the form is dirty. This works great if I manually dirty the form. However, I am saving the data. when the form is loaded, the saved data is populated, but the form isn't dirty when the backend data is updated this way.

So, I figured I'd just set the form to dirty manually. But I am receiving "undefined" errors.

I'm using angular 1.6.6 I've read: Angular.js programmatically setting a form field to dirty,

How to explicitly set a text box in a form to dirty?,

How to set a particular field in a form to dirty in angularjs 1.3

My basic form:

I've added a plunker that shows the issue that I am having. https://plnkr.co/edit/ZUWywfOj329g6sviHIZf?p=preview

0 投票
2 回答
2671 浏览

angularjs - 如何使用 $scope 在 UI-grid 中访问 gridApi?

我正在开发的应用程序要求我访问 paginationChanged 函数,该函数仅在我将 onRegisterApi 对象添加到表中的 gridOptions 时才可用。我需要访问 paginationChanged 函数,以便在 PageSize 增加时更改网格的高度。我知道访问 gridApi 的唯一方法是注入 $scope ,自 Angular 1.6 及更高版本以来不再使用它。现在我正在使用 Angular 1.6 并通过使用 ui-grid= $ctrl.gridOptions 来访问 html 视图上的 gridOptions。有谁知道当 onRegisterApi 对象的一部分时无需使用 $scope 就可以访问 gridApi 的方法?

0 投票
0 回答
32 浏览

angularjs - 当 URLS 从 Angular 1 页面更改为 Angular 2 页面时发出警报

我有一个项目,其中一些屏幕处于 angular 1 中,而有些屏幕处于 angular 2 中。当我有一些未保存的数据并且我尝试导航到 Angular 2 页面时,我需要触发 aalert或可能是 a console.log。我怎样才能做到这一点,反之亦然?

我已经尝试过,当我从 Angular 1 页面移动到 Angular 2 页面时$routeChangeStart$locationChangeStart这些事件并没有被触发。当我从 Angular 1 导航到 Angular 1 页面且未保存数据时,它们工作正常

有什么建议么

谢谢

0 投票
1 回答
454 浏览

angularjs - Angular(1.x)过滤器不适用于对象数组

我正在尝试输入这样的搜索词:

然后使用这个搜索词作为使用 ng-repeat 渲染的对象数组的过滤器,如下所示:

但是在开发人员的控制台中,我收到以下错误:

编辑:这是 items 数组的样子:

...

请帮助我找出我做错了什么以及如何纠正它。TIA。