小编Ven*_*pal的帖子

模拟服务以测试控制器

我有一个ParseService,我想模拟测试所有使用它的控制器,我一直在阅读有关茉莉花间谍的信息,但我仍然不清楚.有人能给我一个如何模拟自定义服务并在Controller测试中使用它的例子吗?

现在我有一个使用服务插入书籍的控制器:

BookCrossingApp.controller('AddBookCtrl', function ($scope, DataService, $location) {

    $scope.registerNewBook = function (book) {
        DataService.registerBook(book, function (isResult, result) {

            $scope.$apply(function () {
                $scope.registerResult = isResult ? "Success" : result;
            });
            if (isResult) {
                //$scope.registerResult = "Success";
                $location.path('/main');
            }
            else {
                $scope.registerResult = "Fail!";
                //$location.path('/');
            }

        });
    };
});
Run Code Online (Sandbox Code Playgroud)

服务是这样的:

angular.module('DataServices', [])

    /**
     * Parse Service
     * Use Parse.com as a back-end for the application.
     */
    .factory('ParseService', function () {
        var ParseService = {
            name: "Parse",

            registerBook: function registerBook(bookk, callback) {

                var …
Run Code Online (Sandbox Code Playgroud)

jasmine angularjs

42
推荐指数
2
解决办法
5万
查看次数

jQuery方向感知悬停与CSS3过渡

我正在努力让方向感知悬停和css转换正常工作.基本上我正在尝试使用具有正面和背面的元素网格,并且当悬停时具有css过渡以翻转该元素以显示背面.

转换示例(没有方向感知):小提琴

正如您所看到的,无论您的鼠标以哪种方式进入元素,它总是会翻转.我想让它以鼠标进/出的方式翻转.

例:

鼠标从底部开始 鼠标右键

这是我对方向感知的尝试:小提琴

我正在使用jQuery添加与鼠标进/出方向相关的类.

.hover-in-top {}
.hover-in-right {}
.hover-in-bottom {}
.hover-in-left {}

.hover-out-top {}
.hover-out-right {}
.hover-out-bottom {}
.hover-out-left {}
Run Code Online (Sandbox Code Playgroud)

正如你从方向感知的例子中看到的那样,它有点有用,但是有一些重大的故障我无法理解.(我一直在思考这个,我的大脑刚刚崩溃.)

无论如何,我希望这是有道理的.谢谢.

javascript css jquery css3 css-transitions

12
推荐指数
1
解决办法
1005
查看次数

在angular-ui-select多选模式下禁用所选选项

ui-select多重模式下,从选项列表中删除选定的选项(也在源代码中检查),但我只需要禁用所选的选项,如下所示,而不是删除.

在此输入图像描述

上面的图片来自selectedjs.

有一个选项,ui-disable-choice禁用选项,但它只是使选择完全无法选择.

<ui-select-choices ui-disable-choice="person.name=='Adam'" repeat="person in people">
  <div ng-bind-html="person.name"></div>
</ui-select-choices>
Run Code Online (Sandbox Code Playgroud)

那么,如何使选定的选项出现在选项中但禁用?

plnkr这里的例子.

select multiple-select angularjs ui-select angular-ui-select

8
推荐指数
1
解决办法
3273
查看次数

JavaScript - 理解方法

我对理解方法原理有疑问.
我理解功能,我知道

function hello() {
    alert('Hello World');
}  
Run Code Online (Sandbox Code Playgroud)

是相同的

var hello = function() {
    alert('Hello World');
}  
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是什么.
这是我的一个方法的对象.我不明白为什么yarsLeft内部不需要括号function people()
我正在寻找一个合乎逻辑的解释.

function people(name, age) {
    this.name = name;
    this.age = age;
    this.yearsUntilRetire = yearsLeft; // this is confised for me
}

function yearsLeft() {
    var numYears = 65 - this.age;
    return numYears;
}
Run Code Online (Sandbox Code Playgroud)

创建对象

var test = new people('Superman', 50);
test.yearsUntilRetire(); // I understand this code and calling a method in that way
Run Code Online (Sandbox Code Playgroud)

为什么我不能写this.yearsUntilRetire() = yearsLeft …

javascript oop methods

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

Webpack没有使用react-toolbox加载SCSS

我正在尝试引导一个新的反应应用程序并使用react-toolbox库和webpack.我无法同时获得react-toolbox的样式和我自己的应用程序样式.

我习惯导入scss文件的方式来自它们使用的react文件/视图/组件,因此它们位于同一个文件夹中.因此,如果我有一个名为header.js的react组件文件,则在同一目录中有header.scss.Header.js调用import './header.scss'.在webpack中,我以前用来加载scss的是:

        {
            test: /\.s?css$/i,
            loader: 'style!css!sass?' +
                'includePaths[]=' + (path.resolve(__dirname, './node_modules')),
        },
Run Code Online (Sandbox Code Playgroud)

但是当我包含react-toolbox时,这个设置完全排除了react-toolbox的样式.我发现这个问题https://github.com/react-toolbox/react-toolbox/issues/121其中mattgi推荐这个webpack-config:

        {
           test    : /(\.scss|\.css)$/,
           include : path.join(__dirname, '../../', 'src'),
           loaders : [ 'style', 'css', 'sass' ]
         },
         {
           test    : /(\.scss|\.css)$/,
           include : /(node_modules)\/react-toolbox/,
           loaders : [
             require.resolve('style-loader'),
             require.resolve('css-loader') + '?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]',
             require.resolve('sass-loader') + '?sourceMap',
           ]
         },
Run Code Online (Sandbox Code Playgroud)

这解决了反应工具箱样式没有加载,但是当我尝试在js文件中导入我自己的 scss文件时,webpack会为scss文件抛出此错误:( You may need an appropriate loader to handle this file type.我安装了sass-loader).

另外,如果我将scss文件包含在同一目录中的同名(some-react-class.js和some-react-class.scss),那么导入some-react-class.js的SomeReactClass的包含组件将它作为一个对象而不是一个函数导入,使它看起来像是导入scss而不是js.

救命 :(

javascript reactjs webpack react-toolbox

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

AngularJS:ui-select 一旦选择,除了更改选项之外无法删除所选选项

我正在使用 ui-select 从服务器获取数据并将其填充到下拉列表中(搜索和选择)。我为你创造了一个笨蛋。

<ui-select ng-model="country.selected" theme="selectize" ng-disabled="disabled" style="width: 300px;">
    <ui-select-match placeholder="Select or search a country in the list...">{{$select.selected.name}}</ui-select-match>
    <ui-select-choices repeat="country in countries | filter: $select.search">
        <span ng-bind-html="country.name | highlight: $select.search"></span>
        <small ng-bind-html="country.code | highlight: $select.search"></small>
    </ui-select-choices>
</ui-select>
Run Code Online (Sandbox Code Playgroud)

一旦我从选择器中选择了任何值,我就可以进一步更改。但无法去除。我怎样才能做到这一点?

javascript angularjs ui-select

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

具有自定义值的angular.js ng-options

我有一个从ajax调用返回的json对象:

0: Object
    id: "0-0-0"
    selected: "selected"
    text: "option name"
    value: 0
    __proto__: Object
1: Object
    id: "12-0-0"
    selected: ""
    text: "4C 1.75 16v Tbi ( TCT )"
    value: 59885
Run Code Online (Sandbox Code Playgroud)

我想填充选择的选项,如下所示:

<option value="0" id="0-0-0" selected="selected">option name </option>
Run Code Online (Sandbox Code Playgroud)

ng-options如何实现这一目标?

select model angularjs ng-options

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