首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ng-包含同一个HTML文件中获得不同的ng模型值

如何在ng-包含同一个HTML文件中获得不同的ng模型值
EN

Stack Overflow用户
提问于 2017-05-26 11:30:49
回答 2查看 809关注 0票数 1

有两个html文件:

index1.html

代码语言:javascript
复制
<input type="text" ng-model="model.Name">
<!-- Some complex form !-->

index.html

代码语言:javascript
复制
<div>Journalist's Details:
    Name:<div ng-include="index1.html"></div>
</div>
<div ng-if="isCompanionNeeded">Journalist's Companion Details:
    Name:<div ng-include="index1.html"></div>
</div>

在这里,我希望用"Journalist.Name“代替"model.Name”作为“记者的详细信息:”表单的一部分,用"Companion.Name“代替”记者的陪伴详细信息:“部分,因为使用相同的模型名,只会在名称字段和任何其他字段中得到相同的值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-26 13:15:44

如果使用的是AngularJS v1.5+,则可以使用组件而不是ng-v1.5+。这是一个可以创建的组件的示例。

组件JS

代码语言:javascript
复制
angular
    .module('app')
    .component('myDetailsComponent', {
        bindings: {
            data: '<'
        },
        controller: function () {
            // do whatever you need with your input here            
        },
        templateUrl: 'my-details.component.html'
    });

组件模板

代码语言:javascript
复制
<input type="text" ng-model="$ctrl.data.Name">

视图

代码语言:javascript
复制
<div>
    <p>Journalist's Details:</p>
    <my-details-component data="companion"></my-details-component>
</div>

编辑

如果使用的是较早版本的AngularJS,则可以使用指令复制相同的功能。例如:

指令JS

代码语言:javascript
复制
angular
    .module('myDetailsDirective')
    .directive('myDetailsDirective', myDetailsDirective);


function myDetailsDirective() {

    return {
        restrict: 'E',
        scope: {
            data: '='
        },
        templateUrl: 'my-details.directive.html',
        link: function () {
            // do whatever you need with your input here   
        }
    };

}

指令模板

代码语言:javascript
复制
<input type="text" ng-model="data.Name">

视图

指令的用法与组件的用法完全相同:

代码语言:javascript
复制
<div>
    <p>Journalist's Details:</p>
    <my-details-directive data="companion"></my-details-directive>
</div>
票数 2
EN

Stack Overflow用户

发布于 2017-05-26 11:35:15

为了便于访问,index.html中的index.html需要有类似于companion.Name对象的东西。

创建一个名为index2.html的文件

代码语言:javascript
复制
<input type="text" ng-model="companion.Name">

并将其包含在index.html中

代码语言:javascript
复制
   <div>Journalist's Details:
       Name:<div ng-include="index1.html"></div>
   </div>
   <div ng-if="isCompanionNeeded">Journalist's Companion Details:
       Name:<div ng-include="index2.html"></div>
   </div
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44200509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档