我收到了一个令人沮丧的警告,并且无法找到可用的解决方案:
WARNING in ../lensing/dist/main.js
Module Warning (from ./node_modules/source-map-loader/dist/cjs.js):
Failed to parse source map from "data" URL: data:application/json;charset=utf-8;base64,eyJ2ZXJza [...]
Run Code Online (Sandbox Code Playgroud)
我的 webpack.config.js 看起来像(npm 模块的设置):
module.exports = {
entry: './src/index.js',
output: {
filename: 'main.js',
path: path.resolve(__dirname, 'dist'),
library: 'lensing',
libraryTarget: 'umd',
umdNamedDefine: true
},
module: {
rules: [
{
test: /\.m?js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
plugins: [
'@babel/plugin-proposal-class-properties'
]
}
}
},
{
test: /\.js$/,
enforce: 'pre',
use: ['source-map-loader'],
},
{
test: /\.(png|jpg|gif|svg)$/i,
use: [
{
loader: …Run Code Online (Sandbox Code Playgroud) 我正在创建一个选择替换指令,以便根据设计轻松选择样式,而不必总是对一堆标记(即指令为您做到!).
我没有意识到属性不会转移到你放置的位置ng-transclude,只是转到根元素.
我在这里有一个例子:http://plnkr.co/edit/OLLntqMzbGCJS7g7h1j4?p = preview
你可以看到它看起来很棒......但是有一个主要的缺陷.将id和name属性不被转移.其中,你知道,没有name,它没有发布到服务器(这种形式绑定到现有系统,所以AJAXing模型不是一个选项).
例如,这是我开始的:
<select class="my-select irrelevant-class" name="reason" id="reason" data-anything="banana">
<option value="">Reason for Contact...</option>
<option>Banana</option>
<option>Pizza</option>
<option>The good stuff</option>
<option>This is an example of a really, really, really, really, really, really long option item</option>
</select>
Run Code Online (Sandbox Code Playgroud)
......这就是我想要的样子:
<div class="faux-select" ng-class="{ placeholder: default == viewVal, focus: obj.focus }">
<span class="faux-value">{{viewVal}}</span>
<span class="icon-arrow-down"></span>
<select ng-model="val" ng-focus="obj.focus = true" ng-blur="obj.focus = false" ng-transclude class="my-select irrelevant-class" name="reason" id="reason" data-anything="banana"> …Run Code Online (Sandbox Code Playgroud) 在AngularJS 1.5中,我想将一个组件的绑定传递给(多槽)转换范围 - 用于模板中的引用(在一个特定的或全部的中 - 没有任何方法可以).
这用于创建通用自定义选择列表
// Component
.component('mySelect', {
bind: {
collection: '<'
},
transclude:{
header: 'mySelectHeader',
item: 'mySelectItem'
},
templateUrl: 'my-select-template',
controller: function(){
.....
}
});
...
// Component template
<script id="my-select-template" type="text/ng-template">
<ol>
<li ng-transclude="header"> </li>
<li ng-transclude="item"
ng-click="$ctrl.select($item)"
ng-repeat"$item in $ctrl.collection">
</li>
</ol>
</script>
...
// Example usage
<my-select collection="[{id: 1, name: "John"}, {id: 2, name: "Erik"}, ... ]>
<my-select-head></my-select-head>
<!-- Reference to $item from ng-repeate="" in component -->
<my-select-item>{{$item.id}}: {{$item.name}}</my-select-item>
</my-select>
Run Code Online (Sandbox Code Playgroud)
这是可能的.component()吗?使用自定义指令 …
web-component angularjs transclusion angularjs-directive angularjs-scope
我有一个正在运行的 NestJS 服务器,它执行一些 TypeORMrepository.insert()命令。然而,当从 Jest 测试运行相同的操作时(使用@nestjs/testing's )Test.createTestingModule(...),会出现臭名昭著的Right-hand side of 'instanceof' is not an object情况。
查看更多详细信息,这似乎是由于 TypeORM 中发生的一些动态加载造成的QueryBuilder:
// loading it dynamically because of circular issue
const InsertQueryBuilderCls = require("./InsertQueryBuilder").InsertQueryBuilder;
Run Code Online (Sandbox Code Playgroud)
该行在运行 NestJS 服务器时成功,但在运行 Jest 测试时失败。进一步来说:
require("./InsertQueryBuilder")返回一个包含 a 的 ES 模块InsertQueryBuilder。在这里设置断点时,奇怪的是,调试文件出现位于src/query-builder/QueryBuilder.ts(它不存在,应该是node_modules/typeorm/query-builder/QueryBuilder.js),但是成功了。require("./InsertQueryBuilder")返回一个空对象,因此它实际上InsertQueryBuilder不是undefined一个对象。调试后的文件符合预期node_modules/typeorm/query-builder/QueryBuilder.js,但失败了。我看起来这可能与我的 Jest 配置有关,即:
module.exports = {
preset: 'ts-jest',
testEnvironment: 'node', …Run Code Online (Sandbox Code Playgroud) 我想在transcluded部分中使用指令,转换内容和调用指令的控制器方法:
<mydirective>
<div ng-click='foo()'>
click me
</div>
</mydirective>
app.directive "mydirective", ->
return {
restrict: 'EACM',
transclude: true
template: "<div ng-transclude></div>"
scope: { } #required: I use two way binding on some variable, but it's not the question here
controller: [ '$scope', ($scope)->
$scope.foo = -> console.log('foo')
]
}
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
angularjs ×3
javascript ×1
jestjs ×1
nestjs ×1
source-maps ×1
transclusion ×1
ts-jest ×1
typeorm ×1
webpack ×1