从泛型类(T)获取类的类型(Get type of Class from generic Class(of T))
我试图得到一个通用的类的类型。 大多数问题都围绕着试图从
List(Of T)
检索Type T的人。 相反,我想要类本身,即System.Collections.Generic.List我正在尝试以下代码,但它返回包含泛型参数的Type。 如果我然后尝试使用不同的泛型类型创建类的实例,我会收到错误,因为Type已关闭。
'The type I want to use a a Generic Parameter in a new object dim O = MasterObject 'This is the class which is Generic dim BaseType as Type = me.getType 'This is the line that errors, since BaseType already has a Generic Type dim GenericType as Type=BaseType.MakeGenericType(O.getType()) 'This would be the new object, with a new generic type dim NewObject as Object = Activator.CreateInstance(GenericType,vars)
那么有没有一种方法可以从Type中清除泛型参数,或者某种方式提取没有通用参数的Type?
I am trying to get the Type of a class which is generic. Most questions revolve around people trying to retrieve the Type T from a
List(Of T)
for example. Instead I want the Type of the class itself, i.e. System.Collections.Generic.ListI am trying the following code, but it returns the Type including the generic parameter. If I then try to create an instance of the class with a different generic Type I get an error because the Type is closed.
'The type I want to use a a Generic Parameter in a new object dim O = MasterObject 'This is the class which is Generic dim BaseType as Type = me.getType 'This is the line that errors, since BaseType already has a Generic Type dim GenericType as Type=BaseType.MakeGenericType(O.getType()) 'This would be the new object, with a new generic type dim NewObject as Object = Activator.CreateInstance(GenericType,vars)
So is there either a way to clear a generic parameter from a Type or some way of extracting the Type without Generic Parameters?
原文:https://stackoverflow.com/questions/35750329
最满意答案
您需要编译自定义控件的DOM。 为此,您需要将
$compile
注入控制器,然后在将控件添加到地图后,在控件实例上使用getContainer
方法并在其上运行$compile
并将其附加到范围:控制:
L.Control.Custom = L.Control.extend({ onAdd: function () { var container = L.DomUtil.create('div', 'leaflet-control-custom') header = L.DomUtil.create('h1', 'leaflet-control-custom-header', container); header.textContent = 'NG-Hide test'; header.setAttribute('ng-hide', 'hide'); return container; } });
控制器:
angular.module('app').controller('controller', [ '$scope', 'leaflet', '$compile', function ($scope, leaflet, $compile) { $scope.hide = false; leaflet.map.then(function (map) { var control = new L.Control.Custom().addTo(map); $compile(control.getContainer())($scope); }); } ]);
这是关于Plunker的一个工作示例: http ://plnkr.co/edit/xzRwTp9OZ8Zp8v7ktt2c?p = preview
You'll need to compile the DOM of your custom control. To do that, you'll need to inject
$compile
into your controller, then after having added the control to your map use thegetContainer
method on your control instance and run$compile
on it and attach it to the scope:Control:
L.Control.Custom = L.Control.extend({ onAdd: function () { var container = L.DomUtil.create('div', 'leaflet-control-custom') header = L.DomUtil.create('h1', 'leaflet-control-custom-header', container); header.textContent = 'NG-Hide test'; header.setAttribute('ng-hide', 'hide'); return container; } });
Controller:
angular.module('app').controller('controller', [ '$scope', 'leaflet', '$compile', function ($scope, leaflet, $compile) { $scope.hide = false; leaflet.map.then(function (map) { var control = new L.Control.Custom().addTo(map); $compile(control.getContainer())($scope); }); } ]);
Here's a working example on Plunker: http://plnkr.co/edit/xzRwTp9OZ8Zp8v7ktt2c?p=preview
相关问答
更多-
ng-if和ng-show / ng-hide之间有什么区别?(What is the difference between ng-if and ng-show/ng-hide)[2021-11-30]
ngIf ngIf指令根据ngIf 删除或重新创建 DOM树的一部分。 如果分配给ngIf的表达式计算为false值,则该元素将从DOM中删除,否则将将该元素的克隆重新插入到DOM中。ngShow需要一个Angular表达式,因此您不需要双重花括号。 这将为您工作:Shows if you have 0-5 doors and windows combined.Shows if you have 6-10 doors and windows combined. ...ng-hide和ng-show的等价类是.ng-hide-add和.ng-hide-remove 。 此外,您可以使用.ng-hide-add-active和.ng-hide-remove-active来设置样式,并根据需要单独控制这些状态。 根据Angularjs关于ngHide和ngShow的文档,您可以在活动状态下使用相同的类来设置动画,以使用它的相应事件(添加或删除)生成动画。 以下示例使用此功能实现简单的fade-in fade-out按钮。 观察确保在索引页面中包含angular-animate ...AngularJS:ng-show / ng-hide(AngularJS: ng-show / ng-hide not working with `{{ }}` interpolation)[2022-07-16]
foo.bar引用不应该包含大括号:I could be shown, or I could be hidden
I could be shown, or I could be hidden
角度表达式需要在卷曲括号中,其中Angular 指令不是。 参见了解角度模板 。 The foo.bar reference should not contain the braces:取决于你的用例,但是总结出不同点: ng-if将从DOM中删除元素。 这意味着所有的处理程序或其他附加到这些元素的东西都将丢失。 例如,如果您将点击处理程序绑定到其中一个子元素,那么当ng-if评估为false时,该元素将从DOM中删除,并且您的点击处理程序将不再工作,即使在ng-if后ng-if以后评估为true,显示元素。 您将需要重新附加处理程序。 ng-show/ng-hide不会从DOM中删除元素。 它使用CSS样式来隐藏/显示元素(注意:您可能需要添加自己的类)。 这样,你附属于孩子的处理者就不 ...您需要编译自定义控件的DOM。 为此,您需要将$compile注入控制器,然后在将控件添加到地图后,在控件实例上使用getContainer方法并在其上运行$compile并将其附加到范围: 控制: L.Control.Custom = L.Control.extend({ onAdd: function () { var container = L.DomUtil.create('div', 'leaflet-control-custom') header ...您正在使用ng-hide和ng-show访问$ scope模型。 在您的服务中,您将isAuthenticated设置为false,并且从不将其设置为True。 所以你的应用程序停留在你的第一个状态,其中isAuthenticated是错误的。 I completly forgot to add 'res' in my register controller, that's why it wasn't updated : $http.post(url, user) .success( ...你可以使用ng-required ,它会设置必要的属性与你的输入模型的checked boleon的对应关系 you can use ng-required and it will set the required att ...ng-show ng-hide无效(ng-show ng-hide not working)[2022-08-20]
$stateParams params总是字符串。 “true”== true,还有“false”== true。 你需要以某种方式将值强制转换为布尔值。 尝试这个 : $scope.asesor = !!$stateParams.asesor; $stateParams params are always strings. "true" == true, but also "false" == true. You need to coerce the value to boolean somehow. ...您可以在父列表中进行过滤,如下所示: angular.module('ExampleApp', []) .controller('ExampleController', function() { this.list = [{ id: 1, labels: [{ id: 11 }, { id: 12 }] }, { id: 2, labels: [{ ...相关文章
更多- Java泛型父类取得子类的泛型参数T的Class类型
- java反射详解(一)_Class类
- 如何卸载assembly?或者class
- ssh 框架下 class 类打包发布
- Don’t work. Be hated. Love someone.
- ServletOutputStream cannot be resolved to a type
- Solr Cache使用介绍及分析,包括LRUCache、filterCache、queryResultCache、documentCache、Generic Caches
- HTTP Content-Type 内容类型详解
- 微信公众平台消息接口开发(2)-封装weixin.class.php
- 微信公众平台消息接口开发(2)-封装weixin.class.php
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)