问题标签 [angularjs-ng-include]

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 投票
1 回答
6286 浏览

angularjs - 如何在 ng-include 中嵌套 ng-view?

尝试在ng-view内部添加ng-include时,没有任何反应。例如,在下面的代码中,当theme/midnight/index.html包含时ng-view,不会呈现视图:

但是,如果我使用下面的代码,视图会显示两次:

有什么问题,我该如何解决?

0 投票
2 回答
16248 浏览

angularjs - 输入中的角度值绑定到模型变量

我需要帮助在我的代码中发现问题。Angular.js 为我将输入ng-model绑定,这不是我想要的。我有一个带有 ng-include 的角度中继器,如下所示:

包含的项目模板是一个简单的输入字段,基于 item.template。有问题的标签是 <textarea> 和 <input> 对我来说。

即我包括这个:

该项目看起来像:

所以当上面的东西渲染时,我得到

但问题是,在我的输入字段中,我将项目编号作为,如果我更改值,我的标签也会更改。即使我输入value=""placeholder="blah",我仍然会得到这种行为。

我还没有走那么远,但我想模型也用数字更新了。

我在那里做错了什么?

0 投票
1 回答
11012 浏览

angularjs - 首次加载后如何在angularJS中更改ng-include的“src”属性值?

在键盘事件中,我想动态更改ng-include指令的src值。

0 投票
1 回答
2965 浏览

angularjs - ng-include - 多次调用控制器

情况

我试图ng-include在不需要任何路由的情况下包含一个部分。我只想动态地包含许多的特定部分。这或多或少是这样的:

它有效,包括部分。但是查看控制台我可以看到控制器被多次调用,第一次被调用时,我得到了 404

GET path/to/partials/undefined.html [HTTP/1.1 404 Not Found 162ms]

似乎 something.id 没有定义,当第一次包含时。

问题

  • 我怎样才能简单地包含一个部分,而不创建一个新的范围?
  • 如果那不可能,我如何确保只调用一次控制器?
  • 我怎样才能避免404?

我对 AngularJS 相当陌生,因此可能会对某些东西做出错误的假设或遗漏明显的东西,请赐教。

0 投票
1 回答
450 浏览

angularjs - Angularjs - 如何访问 ng-include 模板的数据以通过同一控制器中的另一个模板对其进行修改

我想要完成的是在我的应用程序中有两个不同的模板:一个是通过 ng-repeat 生成的,如下所示:

另一个是这样生成的:

所以基本上问题模板将由用户在按钮单击时生成,它还可以使用 ng-repeat 将一个问题嵌套在另一个问题中。

我想要完成的是,每当我单击其中一个问题 div(我的问题模板基本上是一个 div 结构)时,我想要该 div 内的信息(如果有)(可能是具有独特信息的几个字段每个问题),将填充到我的 question_editor 模板中的某些字段中,并且当我更新 question_editor 模板字段时,它将实时更新单击的问题中的字段。

我在想的是使用一个控制器并以某种方式将变量从问题传递到 question_editor 并填充 question_editor 的字段。为每个模板使用不同的控制器,然后在不同的控制器之间传递信息会更好吗?

jsFiddle 只是向您展示我的 div 的结构:http: //jsfiddle.net/cwrEn/1/

0 投票
1 回答
735 浏览

angularjs - AngularJS - 再次单击时,ng-click 不会删除先前单击的修改

所以我试图完成这个例子:http: //jsfiddle.net/pkozlowski_opensource/WXJ3p/15/

但是,由于某种原因,当我单击一个 div,然后单击另一个 div 时,它不会从前一个 div 中删除“活动”类,因此它会突出显示两者,因此如果我单击全部,我的所有 div 都会以活动类结束其中。如果我单击主体上的其他任何位置以及单击任何其他 div (例如小提琴示例),我想将其移至实际删除该类的位置。

我的 jsFiddle http://jsfiddle.net/GeorgiAngelov/jUj56/4/

0 投票
2 回答
6112 浏览

angularjs - Why is the content of an ng-include dynamically loaded template not available via DOM selectors?

Here's a jsfiddle showing the problem: http://jsfiddle.net/yRLKe/5/

One button compiles before injecting to the DOM, the other one injects before compiling. I did both to make sure that how I compile wasn't the cause of the problem.

Whichever button you click, check the console output and you'll see that the actual template's contents are not available when selecting from the DOM.

So the question is firstly why? - why does it behave this way? but most importantly how? - how can I get access to the actual loaded template's HTML via DOM selectors?

Here's the template:

Here's the controller:

Here's the directive:

This directive outputs "test1" to the console whereas I would expect it to output "Hello Superman!".

0 投票
5 回答
18722 浏览

angularjs - 使用 nginclude 时避免使用额外的 DOM 节点

我正在努力思考如何让 ng-include 不使用额外的 DOM 元素,因为我正在从纯 HTML 演示构建角度应用程序。我正在使用带有完全开发、紧密 DOM 耦合的 CSS(由 SASS 构建)的非常纤薄的 HTML,并且我想不惜一切代价避免重构。

这是实际的代码:

我需要<section>是一个重复元素,但有自己的逻辑和不同的内容。内容和重复次数都取决于业务逻辑。如您所见,将 ng-controller 和 ng-repeat 放在<section>元素上是行不通的。然而,插入一个新的 DOM 节点,这是我试图避免的。

我错过了什么?这是最佳做法还是有更好的方法?


编辑:只是为了澄清评论中的要求,我试图生成的最终 HTML 将是:

我想使用相同的模板 B (subheader.html) 的原因是为了代码整洁。我认为 subheader.html 有某种 ng-switch 以返回动态内容。

但基本上,潜在的问题是:有没有办法透明地包含模板的内容,而不使用 DOM 节点?


EDIT2:解决方案需要可重复使用。=)

0 投票
2 回答
2037 浏览

angularjs - 仅对页面上的某些锚标记禁用自动滚动

我创建了一个 AngularJS 服务,它动态地将一个 div 插入到 DOM 中,其中包含来自模板的内容和一个处理模板中的绑定和指令的自定义控制器。名为 的服务myService允许您传入 thetemplateUrlcontrollerNameas 选项。下面是简化的代码:

我在 DOM 上有一个单独的控制器来处理ng-click几个锚标记:

我没有使用 a$routeProvider并且锚标签上没有 href 和 id 属性。点击函数调用我的自定义服务来呈现 div:

在 Chrome 浏览器中加载页面后,我向下滚动以显示带有 的链接,ng-click然后单击该链接,浏览器将滚动到页面顶部。我不希望页面滚动,只需在链接旁边显示 div。该位置的 URL 没有任何变化。如果我向下滚动,我会看到显示的新 div。如果我单击带有 的不同链接ng-click,则不会发生滚动(这也是我第一次单击时想要的)。如果我刷新页面,我首先单击哪个链接并不重要,并且第一次单击总是会导致浏览器滚动回视口的顶部。

如果我没有将ng-include指令放在我的新元素中,而只是在服务中对模板的 HTML 进行硬编码,则不会在第一次单击时滚动到页面顶部。

ngInclude文档说您可以指定一个可选autoscroll属性,并且它说如果未设置该属性,那么它将“禁用自动滚动”。看来情况并非如此。我尝试将自动滚动设置为“false”,但这没有帮助。

我知道我可以$anchorScrollProvider.disableAutoScrolling()禁用所有自动滚动,但我可以做些什么来禁用特定标签的自动滚动?这是我应该报告的 Angular 中的错误吗?如果是这样,在修复该错误之前,我是否可以使用解决方法?

编辑:这是一个演示问题的笨拙。

0 投票
1 回答
1146 浏览

angularjs - AngularJS:在页面加载时以设定的持续时间自动滑动 div

我有以下代码:

指数

JSON

控制器

当 a 调用 a 上的animateToID()函数时,上述所有代码都可以正常工作ng-click

我需要它来使用页面 JSON 文件中出现的持续时间值自动开始滑过模板。JSON 中的所有项目都完成后,通过同一个数组重新开始。