我有一个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) 我正在努力让方向感知悬停和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)
正如你从方向感知的例子中看到的那样,它有点有用,但是有一些重大的故障我无法理解.(我一直在思考这个,我的大脑刚刚崩溃.)
无论如何,我希望这是有道理的.谢谢.
在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
我对理解方法原理有疑问.
我理解功能,我知道
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 …
我正在尝试引导一个新的反应应用程序并使用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.
救命 :(
我正在使用 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)
一旦我从选择器中选择了任何值,我就可以进一步更改。但无法去除。我怎样才能做到这一点?
我有一个从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如何实现这一目标?