小编Mar*_*pez的帖子

Angular 2:如何在不使用路由的情况下从 URL 获取参数?

我正在尝试将 URL 参数放入我的组件中以使用 externsre 服务进行搜索。我读到我可以使用 angular2 路由并使用 RouteParams 获取参数,但我认为这不是我需要的,因为我的 angular 应用程序的第一页是 Razor 视图。

我会尽量解释得更好。我的 URL 看起来像: http://dev.local/listing/?city=melbourne

我在剃刀视图中加载我的根组件,如下所示:

<house-list city = "@Request.Params["city"]"></house-list>
Run Code Online (Sandbox Code Playgroud)

然后在我的根组件上,我有:

export class AppComponent implements OnInit {
    constructor(private _cityService: CityService) { }

    response: any;
    @Input() city: any;

    ngOnInit() {
        this.getHouses();
    }

    getHouses() {
        this.__cityService.getHousesByCity(this.city)
            .subscribe(data => this.response = data);

    }
}
Run Code Online (Sandbox Code Playgroud)

所以我期待我的组件中的“城市”获取从剃刀视图传递的字符串,但它是未定义的。

我究竟做错了什么?有没有办法在不使用路由的情况下获取参数?如果没有,使用剃须刀的正确方法是什么?

asp.net-mvc razor angular2-routing angular

5
推荐指数
1
解决办法
2220
查看次数

错误的清单预缓存位置

我正在尝试使用 Workbox.injectManifest 来生成一个 Service Worker,但是我的 Service Worker 的预缓存清单的路径没有正确生成。

我的 Webpackoutput.path是 'path.resolve('./scripts/app/dist')' 和我的 Workbox 配置:

new WorkboxPlugin.InjectManifest({
        swSrc: path.resolve("./scripts/app/src/service-worker.js"),
        swDest: "../../../sw.js",        
        globDirectory: path.resolve("./"),
        globPatterns: [
            "scripts/**/*.js",
            "fonts/**/*.{eot,ttf,woff,woff2,otf}",
            "images/**/*.{png,jpg,svg,gif,ico}",
            "styles/**/*.css"
        ]
    });
Run Code Online (Sandbox Code Playgroud)

因为默认情况下,Workbox 在 output.path 中创建 sw.js 并且我希望它在我网站的根目录中,../../../sw.js 但预缓存清单将保留在 output.path 中,这是./scripts/app/dist. 问题是在生成的 sw.js 中指向清单的路径是:

importScripts("precache-manifest.472387a6bbb5e3e8f5e8392d628202d5.js", "https://storage.googleapis.com/workbox-cdn/releases/3.1.0/workbox-sw.js");
Run Code Online (Sandbox Code Playgroud)

这是指向 sw.js 所在的位置,它位于站点根目录中,但无法找到。这是错误还是我没有正确配置?我曾尝试使用“importsDirectory”,但这只是将清单移动到另一个位置,而 sw.js 上的路径仍然是错误的。

更新

我的服务工作者模板中有这个:

workbox.skipWaiting();
workbox.clientsClaim();

workbox.precaching.precacheAndRoute([])

workbox.routing.registerRoute( .......
Run Code Online (Sandbox Code Playgroud)

但是当我构建时,不会填充数组并创建一个外部清单:这就是插件创建的内容:

importScripts("precache-manifest.aa4b439ba2589f9d3cf0c56e1b06323d.js", "https://storage.googleapis.com/workbox-cdn/releases/3.1.0/workbox-sw.js");

workbox.skipWaiting();
workbox.clientsClaim();

workbox.precaching.precacheAndRoute([])

workbox.routing.registerRoute(
Run Code Online (Sandbox Code Playgroud)

webpack workbox

5
推荐指数
1
解决办法
1042
查看次数

何时从服务器删除推送订阅

刚刚开始使用推送通知,我设法处理所有订阅过程,并将端点和密钥保存在我的数据库上。我的问题是,我应该遵循什么策略(如果有)从数据库中删除旧的订阅详细信息?因此,如果有人允许通知并且他们撤销了该权限,我如何知道是谁从数据库中删除了详细信息?因为如果用户取消订阅,我只会从 PushManager 获得空订阅。

push-notification web-push

3
推荐指数
1
解决办法
1578
查看次数

使用 .NET 客户端添加评分配置文件

我找不到如何使用 .NET 客户端进行 Azure 搜索来添加评分配置文件。是的,我知道有一个文档可以使用 REST API 来完成,谢谢。

azure-cognitive-search azure-search-.net-sdk

0
推荐指数
1
解决办法
187
查看次数