小编Tia*_*ago的帖子

Angular ui-router:离开特定页面时警告用户

在我的角度应用程序,我需要他之前警告用户离开一个特定的网页,而不是每一个页面.

如果我$locationChangeStart在页面的控制器中使用我要警告用户的内容,即使进入页面也会触发,这是不希望的.

如果我在父控制器上使用它,它将在任何地方触发,我必须添加复杂的if/else或switch结构,基本上告诉它永远不会触发,除非用户放弃该特定状态.

如何检测用户实际离开(并且仅离开)特定的stateUI-Router?

javascript angularjs angular-ui-router

7
推荐指数
1
解决办法
4730
查看次数

在 Windows 上 VSCode 的 GLSL Lint 扩展上设置 Glsland 验证器路径的正确方法是什么(使用 WSL)

尝试在浏览器上使用着色器,并刚刚安装了VSCode 的GLSL Lint 扩展,它显然需要知道二进制文件的路径glslangValidator才能正常工作。

所述二进制文件可以(我假设)在这里找到: https: //github.com/KhronosGroup/glslang/releases/tag/master-tot

但是,我已经在 Linux 和 Windows 中尝试了多种安装路径组合,但均无济于事:扩展程序不断出现错误,ENOENT如下图所示:

在此输入图像描述

考虑到我的设置(在 Windows 上使用 VS Code 和 WSL),我应该将该二进制文件放置在哪里,以便 GLSL Lint 可以正确找到它?

例如,我尝试了 和~/glslang/bin/glslangValidatorC:\\Users\\{User}\\AppData\\Local\\Packages\\TheDebianProject.DebianGNULinux_31v5hhsz12ds6\\LocalState\\rootfs\\home\\glslang\\bin\\glslangValidator以及其他安装路径),但到目前为止都不起作用。

我缺少什么?

glsl visual-studio-code

7
推荐指数
1
解决办法
5294
查看次数

Javascript的赋值操作是复制引用?

基本的例子:

var b = 10;
var c = b;
b++;
console.log(b,c);

>> 11 10
Run Code Online (Sandbox Code Playgroud)

c看起来像是副本b.

但在另一个案例中:

var x = {};
var y = x;
x.abc = 10;
console.log(x.abc, y.abc);

>> 10 10
Run Code Online (Sandbox Code Playgroud)

为什么y不是副本x,而是指向同一实例的引用x指向?

此外,我猜测b++创建了另一个实例,因此b指向新实例但c指向旧实例.然而...

var u = 10;
setTimeout(function() {
  console.log(u);
}, 10000)
u++;

>> 11
Run Code Online (Sandbox Code Playgroud)

如果u++创建一个新实例,那么u匿名函数里面应该指向旧的u,不应该吗?

javascript reference variable-assignment

6
推荐指数
3
解决办法
3023
查看次数

CSS颜色属性在@media print上无法正常工作

我正在构建一个基本上由大型表单组成的Web应用程序,然后可以在提交后打印.

但是,我的打印文档上的文本似乎永远不会受到两者colorfont-weightCSS属性的影响.

这是文档的一小部分,如屏幕上的样子:

在此输入图像描述

但是,在打印时,它最终看起来像这样:

在此输入图像描述

字体相同但由于某种原因没有应用任何样式.我没有覆盖CSS设置@media print,所以不应该看起来完全一样吗?

为什么我的普通样式不能应用于打印文档(通过打印文档我的意思是单击浏览器的"打印"按钮时出现的文档)?

编辑:根据要求发布一些示例代码来说明我的问题:

@media print {

    html {
        margin: 0;
        padding: 0;
        width: 100%;
        font-size: 0.9em;
        color: yellow !important;
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码段中,除了颜色,每个属性都能正常工作,即使使用!important标记也是如此.我不知道为什么会发生这种情况.

css media-queries

6
推荐指数
1
解决办法
8624
查看次数

改变角料开关的背景颜色而不会失去波纹效果

如何在不失去涟漪效应的情况下更改角度材料开关按钮的颜色?

请在此处查看代码笔:http://codepen.io/shyambhiogade/pen/LpNGBP

我已将颜色更改为#03A9F4,现在涟漪效果无法正常工作......

代码如下:

<div class="inset switchdemoBasicUsage" ng-controller="SwitchDemoCtrl" ng-app="MyApp">
  <md-switch class="md-primary" md-no-ink="" aria-label="Switch No Ink" ng-model="data.cb5">
    Switch (md-primary): No Ink
  </md-switch>
</div>
Run Code Online (Sandbox Code Playgroud)

angular-material

4
推荐指数
1
解决办法
4795
查看次数

发送带有正文的 Angular $http.delete

在我的 Angular 应用程序中,我需要通过$http.delete此路由发送请求/projects/:id/activityTypes(注意它不以活动类型 ID 结尾)并传递以下格式的正文:

[{"id": 2}]
Run Code Online (Sandbox Code Playgroud)

这是为了允许通过发送数组内的多个对象来进行批量删除操作。

使用 Rest Web 服务客户端测试上面的路由,我得到一个200, OK状态,因此该路由已经实现并且工作正常,我只需要在我的 Angular 应用程序中实现它。

现在,我检查了上一篇文章,其中有一个非常相似的问题,并了解到 Angular$http.delete默认情况下不会在请求中发送正文,但是:

[它]确实允许我们提供一个配置对象作为第二个参数,通过它我们可以访问“data”属性。

所以我尝试了建议的方法并在我的请求中发送了一个配置对象:

return $http.delete('projects/' + projectID + '/activityTypes', {data: [{id: 2}]})
Run Code Online (Sandbox Code Playgroud)

然而,它不起作用。看起来虽然我发送了这个配置对象,但我仍然没有发送正文。

我怎样才能真正将尸体传递到我的$http.delete路线上?

编辑:这是当我发送上面的请求时服务器正在记录的内容$http.delete

在此输入图像描述

数据似乎已发送,但我收到此控制台错误,但在使用 Rest 客户端时未收到此错误:

Object {data: "Json not valid to remove activity type from Project", status: 400, config: Object, statusText: "Bad Request"}
Run Code Online (Sandbox Code Playgroud)

javascript ajax angularjs

4
推荐指数
1
解决办法
2804
查看次数

在内部更改Notification Factory模型后,Angular ng-repeat不会更新

在我的Angular应用程序中,我有一个简单的通知工厂,它允许我存储和获取我想传达给用户的信息:

(function() {
    'use strict';

    angular
        .module('peaches')
        .factory('NotificationFactory', factory);

    // factory.$inject = ['dependencies'];

    /* @ngInject */
    function factory() {

        var messages = [];

        var service = {
            postAlert: postAlert,
            getAlerts: getAlerts,
            deleteAlert: deleteAlert
        };

        return service;

        function postAlert(alert) {
            messages.push(alert);
            if (alert.duration) {
                setTimeout(function() {
                    deleteAlert(alert);
                }, alert.duration)
            }
        }

        function getAlerts() {
            return messages;
        }

        function deleteAlert(alert) {
            messages.splice(messages.indexOf(alert), 1);
        }
    }
})();
Run Code Online (Sandbox Code Playgroud)

正如您在postAlert函数中看到的,我希望能够durationduration毫秒数之后删除通知,如果所述通知具有属性.

目的是让某些类型的通知在几秒钟后自动消失,而不是要求交互关闭.

这是一个示例通知:

var reportSaved = {
    msg: "Report saved.", …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-ng-repeat angular-services

4
推荐指数
1
解决办法
95
查看次数

使用Vuejs,如何以正确的方式在v-for循环内使用模态组件

在我的vue.js应用程序中,我需要显示用户可以单击的项目列表.

单击时,每个项目都应该触发一个模态,其中包含有关用户刚刚单击的项目的其他信息.

到目前为止,我的Items.vue组件是:

<template>
    <div id="content">
        <li v-for="item in items" class="list-item pa2 ba">
            <div class="f5 pt2 pb2">
                <span>{{item.name}}</span>
            </div>
        </li>
    </div>
</template>

<script>
    import Items from '@/api/items';

    export default {
        name: 'items',
        asyncComputed: {
            items: {
                async get() {
                    const items = await Items.getAll();
                    return items.data;
                },
                default: []
            }
        },
        components: {}
    }
</script>
Run Code Online (Sandbox Code Playgroud)

现在,我可以简单地在v-for循环中添加一个模态组件,从而为每个项目创建一个模态,但是,例如,如果我有一个包含数千个项目的列表,这似乎并不理想.

这让我相信模式应该放在应用程序的根目录(在我的例子中App.vue),如下所示:

<template>
    <div id="app">
        <modal></modal>
        <router-view></router-view>
    </div>
</template>

<script>
    export default {
        name: 'app'
    }
</script>
Run Code Online (Sandbox Code Playgroud)

然后在我需要时以某种方式用自定义数据解雇.

但是,我不知道该怎么办.如何使用来自 …

javascript modal-dialog vue.js

4
推荐指数
1
解决办法
5906
查看次数

Angular UI-Router:$ state.current有时是未定义的

我正在使用ui.router我的角度应用程序,并在我的导航栏controller(包含在多个模板中)中,我编写了一个简单console.log($state.current)的测试它的行为.

我注意到,有时,在重新加载时,状态是未定义的:

Object {name: "", url: "^", views: null, abstract: true}
Run Code Online (Sandbox Code Playgroud)

有时它被定义:

Object {url: "/admin", templateUrl: "app/components/admin-dashboard/admin-dashboard.html", controller: "AdminCtrl", controllerAs: "vm", name: "admin-dashboard"}
Run Code Online (Sandbox Code Playgroud)

可能是这种行为的原因是什么?如何保证在加载视图时定义我的状态?

javascript angularjs angular-ui-router

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

使用vue-js-modal,如何访问传递给modal的数据?

在我的 vue.js 应用程序中,我需要在模态中显示自定义数据。我正在使用vue-js-modal能够从我的应用程序内的任何位置显示模态:https : //www.npmjs.com/package/vue-js-modal

我创建了一个非常简单的自定义模态模板来试用它,名为ItemModal.vue

<template>
    <modal name="item-modal">
        <b>{{item.name}}</b>
    </modal>
</template>
<script>
    export default {
        name: 'item-modal',
        props: [ 'item' ]
    }
</script>
Run Code Online (Sandbox Code Playgroud)

我能够从我的ItemList.vue组件内部成功调用它:

<template>
    <div id="content">
        <item-modal></item-modal>
        <li v-for="item in items">
            <a v-on:click="showModal( item )">
                <span>{{item.name}}</span>
            </a>
        </li>
    </div>
</template>
<script>
    import ItemModal from './ItemModal.vue';
    import Items from '@/api/items';

    export default {
        name: 'items',
        asyncComputed: {
            items: {
                async get() {
                    const items = await Items.getAll();
                    return items.data;
                },
                default: [] …
Run Code Online (Sandbox Code Playgroud)

javascript modal-dialog vue.js

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

成功 GET 请求后无法访问 Axios 响应对象的数据属性:类型“void”上不存在属性“data”

我正在使用 React 和 TypeScript 构建一个个人项目来学习绳索,但在以下块中遇到了一个奇怪的(对我而言)错误,我使用 Axios 获取一些数据:

const fetchItem = async () => {
  const response = await axios
    .get("http://localhost:4000/items?id=2")
    .catch(error => console.log(error));
  console.log(response.data);
};
Run Code Online (Sandbox Code Playgroud)

Property 'data' does not exist on type 'void'一旦我尝试访问data我的response对象的属性,错误消息就会立即在 Visual Studio Code 上弹出。

我怎样才能response.data正确访问(没有我的 IDE 和 Webpack 都抱怨)?

这是我的组件的完整代码,供参考:

import * as React from "react";
import { css } from "emotion";
import axios from "axios";

import { Item } from "./Item/Item";

export interface ContentProps {
  view: string;
}

const …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs visual-studio-code

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