我使用angular-ui下拉
它工作正常,但我不知道如何处理下拉菜单中的多个项目.
请考虑以下Plunker中的示例
HTML
<div class="btn-group" dropdown is-open="status.isopen">
<button type="button" class="btn btn-primary dropdown-toggle" ng-disabled="disabled">
Button dropdown <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li ng-repeat="item in items"><a href="#">{{item}}</a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
我想要定义滚动并缩短下拉列表.
有任何想法吗?
我有非常复杂的控制器(约3K行代码)演示仪表板.Controller包含许多图表,网格表等.
例如,我将网格表逻辑移动到下面提到的指令名称wmGridActionItems.注意,它使用父范围:
app.directive('wmGridActionItems', ['$rootScope', '$timeout', function ($rootScope, $timeout) {
return {
restrict: 'E',
templateUrl: 'views/grid-action-items.html',
link: function (scope, elem, attrs) {
// logic goes here
}
};
}]);
Run Code Online (Sandbox Code Playgroud)
和HTML:
<div ui-grid="gridActionItemsOptions"
ui-grid-auto-resize
ui-grid-pagination
ui-grid-selection
ui-grid-auto-resize
ui-grid-resize-columns>
</div>
Run Code Online (Sandbox Code Playgroud)
所以在主控制器HTML中我只写:<wm-grid-action-items></wm-grid-action-items>
我无法在其他地方使用此指令,但至少我将我的BIG控制器划分为几个小指令,这些指令可以帮助我处理仪表板.
我做错了什么?这是好习惯吗?Angular有其他方法可以解决这个问题吗?
编辑
这是我$StateProvider的仪表板视图:
$stateProvider
.state('sidemenu.dash', {
url: '/dshmngr',
abstract: true,
views: {
'content': {
templateUrl: 'views/dashboard/dashboard_manager.html',
controller: 'DashboardMngrCtrl'
}
}
})
.state('sidemenu.dash.main', {
url: '/main',
views: {
'content': {
templateUrl: 'views/dashboard/dashboard-main.html',
controller: 'DashboardNewCtrl'
} …Run Code Online (Sandbox Code Playgroud) 当我通过输入后台通知我的应用时,我会根据提到的代码调用:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(handleDidEnterBackground)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
Run Code Online (Sandbox Code Playgroud)
我有以下代码片段handleDidEnterBackground:
NSURLSession *session;
// ...
sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.my.company"];
sessionConfiguration.allowsCellularAccess = YES;
sessionConfiguration.sessionSendsLaunchEvents = NO;
session = [NSURLSession sessionWithConfiguration:sessionConfiguration
delegate:self
delegateQueue:nil];
NSURLSessionDownloadTask *task = [session downloadTaskWithRequest:request];
[task resume];
// why do I need this line?
[session finishTasksAndInvalidate];
Run Code Online (Sandbox Code Playgroud)
来自Doc:
/* -finishTasksAndInvalidate returns immediately and existing tasks will be allowed
* to run to completion. New tasks may not be created. The session
* will continue to make delegate …Run Code Online (Sandbox Code Playgroud) 我使用此方法获取设备型号名称:
+ (NSString *) machineModel
{
const char *name = "hw.model";
#if TARGET_OS_IPHONE
// .model on iOS returns internal model name (e.g. "N51AP") when we'd prefer to see the model identifier here ("iPhone6,1")
name = "hw.machine";
#endif
int error = 0;
size_t length = 0;
error = sysctlbyname(name, NULL, &length, NULL, 0);
if (error != 0) {
return nil;
}
char *p = malloc(sizeof(char) * length);
if (p) {
error = sysctlbyname(name, p, &length, NULL, 0);
}
if (error != …Run Code Online (Sandbox Code Playgroud) 我尝试将csv文件转换为对象代表csv中的1行的对象的Json文件200K.
我在32位和Project配置VM参数上安装了Java: -Xmx1024m
但是我得到:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuffer.append(Unknown Source)
at java.io.StringWriter.write(Unknown Source)
at com.google.gson.stream.JsonWriter.string(JsonWriter.java:478)
at com.google.gson.stream.JsonWriter.value(JsonWriter.java:328)
at com.google.gson.Streams.write(Streams.java:113)
at com.google.gson.Streams.write(Streams.java:136)
at com.google.gson.Streams.write(Streams.java:136)
at com.google.gson.Streams.write(Streams.java:124)
at com.google.gson.Streams.write(Streams.java:136)
at com.google.gson.Gson.toJson(Gson.java:362)
at com.google.gson.Gson.toJson(Gson.java:346)
at com.google.gson.Gson.toJson(Gson.java:260)
at com.google.gson.Gson.toJson(Gson.java:240)
at ConvertFromCsv2JsonTWC.init(ConvertFromCsv2JsonTWC.java:186)
at ConvertFromCsv2JsonTWC.main(ConvertFromCsv2JsonTWC.java:48)
Run Code Online (Sandbox Code Playgroud)
在排队:
Gson gson = new Gson();
String output = gson.toJson(container);// <---- crash
Run Code Online (Sandbox Code Playgroud)
对于50k行,它工作正常.
这是Json I构建的模板:
{
"crs": {
"type": "none"
},
"type": "FeatureCollection",
"features": …Run Code Online (Sandbox Code Playgroud) 我有简单的课程User.当我尝试调用valueForKeykey是可选值时,我收到错误.见下文:
class User : NSObject{
var name = "Greg"
var isActive:Bool?
}
var user = User()
user.isActive = true // initiated
var ageValue : AnyObject! = user.valueForKey("name")// OK
var isActive : AnyObject! = user.valueForKey("isActive") //ERROR
Run Code Online (Sandbox Code Playgroud)
<__ lldb_expr_862.User 0x7fa321d0d590> valueForUndefinedKey:]:此类与密钥isActive不符合密钥值编码.
如果我将启动该值,它将起作用:
var isActive:Bool = true
Run Code Online (Sandbox Code Playgroud)
如何使它与可选值一起使用?
我有一个简单的例子,我调用一些列表并尝试追加新的值.
class User{
var list:Array<String> = []
func getList()->Array<String>{
return list
}
}
var user = User()
user.getList().append("aaa") // <-- ERROR
user.list.append("aaa") // OK
Run Code Online (Sandbox Code Playgroud)
Immutable value of type Array<String> only has mutating member named 'append'
如果user.getList()返回,为什么它不起作用list.
我知道Java中没有封装,但看起来很奇怪.
[编辑]
关于@MichaelDautermann回答:
var user = User() // {["c"]}
var temp:Array<String> = user.getList() // ["c"]
temp += ["aaa"] // ["c", "aaa"]
var z:Array<String> = user.getList() // ["c"]
Run Code Online (Sandbox Code Playgroud) 我想知道是否有办法定制google-play-services.jar.
我发现新版本有24K方法,使我的应用程序超出Max方法计数(~65K),因此我无法创建APK文件(或DEX).
在过去,我在某个网站上看到,您可以google-play-services.jar通过启用/禁用未使用的功能进行配置.
我的旧罐子重量是7K(而不是19K),我不能跳到24K,太膨胀了.
有什么建议吗?
[编辑]
我发现这个问题@Eric Lafortune建议使用Proguard
我有以下代码示例(来自PlayGround):
class Serializable : NSObject{
override init() { }
}
class Device : Serializable{
var uuid:String
override init() {
println("init ")
self.uuid = "XXX"
self.uuid = Device.createUUID()
println(self.uuid)
}
class func createUUID() -> String{
return "XXX2"
}
}
var device = Device()
Run Code Online (Sandbox Code Playgroud)
您可以注意到我将createUUID方法实现为静态.
但为什么我init不能以静态方式调用此方法?:
class Serializable : NSObject{
override init() { }
}
class Device : Serializable{
var uuid:String
override init() {
// tried
// super.init()
println("init ")
self.uuid = "XXX"
self.uuid = self.createUUID() // ERROR …Run Code Online (Sandbox Code Playgroud) 我有编码String的obj-C方法:
- (NSString *) encodeValue:(NSString*) unescaped{
return [unescaped stringByAddingPercentEncodingWithAllowedCharacters:
[NSCharacterSet URLHostAllowedCharacterSet]];
}
Run Code Online (Sandbox Code Playgroud)
输入: testswiftapppod://
输出: testswiftapppod%3A%2F%2F
我在Swift中编写了相同的方法,但得到了不同的输出: testswiftapppod:%2F%2F
static func encodeValue(unescaped:String!) -> String{
return unescaped.addingPercentEncoding(
withAllowedCharacters: CharacterSet.urlHostAllowed)!
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,结肠没有转换
如何解决这个问题?
我使用Xcode 8.3
[编辑]
来自Docs:
//通过将所有不在allowedCharacters集中的字符替换为百分比编码字符,返回从接收方创建的新字符串.UTF-8编码用于确定正确的百分比编码字符.整个URL字符串不能进行百分比编码.此方法旨在对URL组件或子组件字符串进行百分比编码,而不是对整个URL字符串进行编码.将忽略7位ASCII范围之外的allowedCharacters中的任何字符. - (可为空的NSString*)stringByAddingPercentEncodingWithAllowedCharacters:(NSCharacterSet*)allowedCharacters NS_AVAILABLE(10_9,7_0);
swift ×4
angularjs ×2
ios ×2
objective-c ×2
android ×1
angular-ui ×1
css ×1
encoding ×1
gson ×1
html ×1
java ×1
key-value ×1
nsurlsession ×1
string ×1