gpt4 book ai didi

javascript - 如何根据预定义条件将 HTML 组件与 ng-repeat 绑定(bind)

转载 作者:行者123 更新时间:2023-11-27 23:03:24 25 4
gpt4 key购买 nike

我对 AngularJS 很陌生。我制作了一个 html 组件,可以在整个应用程序中重复使用。假设该组件提供了产品的基本信息。 HTML的基本结构如下:

<div class="visible-sm-block">
<div class="row">
<div class="col-sm-2">
<img class="img-circle img-responsive" alt="Image of product"
ng-src="{{}}"/>
</div>
<div class="col-sm-10">
<label>{{ProductName}}</label>
<p>{{CompanyName}}</p>
<p>{{ShippedTo}}</p>
</div>
</div>
</div>

product.js 文件如下:

(function() {
'use strict';

angular
.module('product')
.directive('productDetails', productDetails);

/** @ngInject */
function productDetails() {
var directive = {
restrict: 'E',
templateUrl: 'app/components/productDetails/productDetails.html'
};
return directive;
}

})();

小型 HTML 组件将在应用程序中的其他 HTML 页面中重复使用,如下所示:

<product-details></product-details>

现在的问题是,当我在页面中使用 HTML 组件时,我无法将数据与该组件绑定(bind)。这些页面的 Controller 位于单独的文件夹中:app/productshipping/productshipping.controller.js我尝试在 HTML 组件本身中使用 ng-controller="controller_name"但没有结果。 :( 请帮忙。

最佳答案

这真是一个有趣的问题。代码如下。我正在开发一个 Angular 框架。因此,如果您需要任何进一步的帮助,请告诉我。

Product.js文件如下

"use strict";

angular.module("app",[]);

angular.module("app").controller("productController", ['$scope', function ($scope) {


}]);

angular.module("app").directive("tmHtml", function () {
return {
transclude: false,
scope: {
productName: '@',
companyName: '@',
shippedTo: '@'
},
controller: "productController",
templateUrl: "/templates/HideShow.html"

};

});

模板HTML文件如下

<html ng-app="app">
<head>
<title></title>
<link href="../Content/bootstrap.min.css" rel="stylesheet" />
<script src="../Scripts/jquery-1.10.2.js"></script>
<script src="../Scripts/bootstrap.js"></script>
</head>
<body ng-controller="productController">
<div class="visible-sm-block">
<div class="row">
<div class="col-sm-2">
<img class="img-circle img-responsive" alt="Image of product" ng-src="{{}}" />
</div>
<div class="col-sm-10">
<label>{{productName}}</label>
<p>{{companyName}}</p>
<p>{{shippedTo}}</p>
</div>
</div>
</div>
</body>

</html>

如何重用它,如下

<html ng-app="app">
<head>
<title></title>
<link href="../Content/bootstrap.min.css" rel="stylesheet" />
<script src="../Scripts/jquery-1.10.2.js"></script>
<script src="../Scripts/bootstrap.js"></script>
<script src="../Scripts/angular.js"></script>
<script src="../js/Product.js"></script>
</head>
<body>
<div>
<tm-Html product-Name="Sankar" company-Name="Sankar" shipped-To="Sankar">
</tm-Html>
</div>
</body>

</html>

关于javascript - 如何根据预定义条件将 HTML 组件与 ng-repeat 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36839333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com